diff options
Diffstat (limited to 'Documentation')
37 files changed, 1267 insertions, 415 deletions
diff --git a/Documentation/ABI/testing/debugfs-ideapad b/Documentation/ABI/testing/debugfs-ideapad new file mode 100644 index 000000000000..7079c0b21030 --- /dev/null +++ b/Documentation/ABI/testing/debugfs-ideapad | |||
@@ -0,0 +1,19 @@ | |||
1 | What: /sys/kernel/debug/ideapad/cfg | ||
2 | Date: Sep 2011 | ||
3 | KernelVersion: 3.2 | ||
4 | Contact: Ike Panhc <ike.pan@canonical.com> | ||
5 | Description: | ||
6 | |||
7 | cfg shows the return value of _CFG method in VPC2004 device. It tells machine | ||
8 | capability and what graphic component within the machine. | ||
9 | |||
10 | |||
11 | What: /sys/kernel/debug/ideapad/status | ||
12 | Date: Sep 2011 | ||
13 | KernelVersion: 3.2 | ||
14 | Contact: Ike Panhc <ike.pan@canonical.com> | ||
15 | Description: | ||
16 | |||
17 | status shows infos we can read and tells its meaning and value. | ||
18 | |||
19 | |||
diff --git a/Documentation/ABI/testing/sysfs-platform-ideapad-laptop b/Documentation/ABI/testing/sysfs-platform-ideapad-laptop index ff53183c3848..814b01354c41 100644 --- a/Documentation/ABI/testing/sysfs-platform-ideapad-laptop +++ b/Documentation/ABI/testing/sysfs-platform-ideapad-laptop | |||
@@ -5,19 +5,4 @@ Contact: "Ike Panhc <ike.pan@canonical.com>" | |||
5 | Description: | 5 | Description: |
6 | Control the power of camera module. 1 means on, 0 means off. | 6 | Control the power of camera module. 1 means on, 0 means off. |
7 | 7 | ||
8 | What: /sys/devices/platform/ideapad/cfg | ||
9 | Date: Jun 2011 | ||
10 | KernelVersion: 3.1 | ||
11 | Contact: "Ike Panhc <ike.pan@canonical.com>" | ||
12 | Description: | ||
13 | Ideapad capability bits. | ||
14 | Bit 8-10: 1 - Intel graphic only | ||
15 | 2 - ATI graphic only | ||
16 | 3 - Nvidia graphic only | ||
17 | 4 - Intel and ATI graphic | ||
18 | 5 - Intel and Nvidia graphic | ||
19 | Bit 16: Bluetooth exist (1 for exist) | ||
20 | Bit 17: 3G exist (1 for exist) | ||
21 | Bit 18: Wifi exist (1 for exist) | ||
22 | Bit 19: Camera exist (1 for exist) | ||
23 | 8 | ||
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt index fe2326906610..66bd97a95f10 100644 --- a/Documentation/DMA-API.txt +++ b/Documentation/DMA-API.txt | |||
@@ -50,6 +50,13 @@ specify the GFP_ flags (see kmalloc) for the allocation (the | |||
50 | implementation may choose to ignore flags that affect the location of | 50 | implementation may choose to ignore flags that affect the location of |
51 | the returned memory, like GFP_DMA). | 51 | the returned memory, like GFP_DMA). |
52 | 52 | ||
53 | void * | ||
54 | dma_zalloc_coherent(struct device *dev, size_t size, | ||
55 | dma_addr_t *dma_handle, gfp_t flag) | ||
56 | |||
57 | Wraps dma_alloc_coherent() and also zeroes the returned memory if the | ||
58 | allocation attempt succeeded. | ||
59 | |||
53 | void | 60 | void |
54 | dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, | 61 | dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, |
55 | dma_addr_t dma_handle) | 62 | dma_addr_t dma_handle) |
diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt index 06eb6d957c83..cc0ebc5241b3 100644 --- a/Documentation/cgroups/memory.txt +++ b/Documentation/cgroups/memory.txt | |||
@@ -418,7 +418,6 @@ total_unevictable - sum of all children's "unevictable" | |||
418 | 418 | ||
419 | # The following additional stats are dependent on CONFIG_DEBUG_VM. | 419 | # The following additional stats are dependent on CONFIG_DEBUG_VM. |
420 | 420 | ||
421 | inactive_ratio - VM internal parameter. (see mm/page_alloc.c) | ||
422 | recent_rotated_anon - VM internal parameter. (see mm/vmscan.c) | 421 | recent_rotated_anon - VM internal parameter. (see mm/vmscan.c) |
423 | recent_rotated_file - VM internal parameter. (see mm/vmscan.c) | 422 | recent_rotated_file - VM internal parameter. (see mm/vmscan.c) |
424 | recent_scanned_anon - VM internal parameter. (see mm/vmscan.c) | 423 | recent_scanned_anon - VM internal parameter. (see mm/vmscan.c) |
diff --git a/Documentation/device-mapper/dm-log.txt b/Documentation/device-mapper/dm-log.txt index 994dd75475a6..c155ac569c44 100644 --- a/Documentation/device-mapper/dm-log.txt +++ b/Documentation/device-mapper/dm-log.txt | |||
@@ -48,7 +48,7 @@ kernel and userspace, 'connector' is used as the interface for | |||
48 | communication. | 48 | communication. |
49 | 49 | ||
50 | There are currently two userspace log implementations that leverage this | 50 | There are currently two userspace log implementations that leverage this |
51 | framework - "clustered_disk" and "clustered_core". These implementations | 51 | framework - "clustered-disk" and "clustered-core". These implementations |
52 | provide a cluster-coherent log for shared-storage. Device-mapper mirroring | 52 | provide a cluster-coherent log for shared-storage. Device-mapper mirroring |
53 | can be used in a shared-storage environment when the cluster log implementations | 53 | can be used in a shared-storage environment when the cluster log implementations |
54 | are employed. | 54 | are employed. |
diff --git a/Documentation/device-mapper/persistent-data.txt b/Documentation/device-mapper/persistent-data.txt new file mode 100644 index 000000000000..0e5df9b04ad2 --- /dev/null +++ b/Documentation/device-mapper/persistent-data.txt | |||
@@ -0,0 +1,84 @@ | |||
1 | Introduction | ||
2 | ============ | ||
3 | |||
4 | The more-sophisticated device-mapper targets require complex metadata | ||
5 | that is managed in kernel. In late 2010 we were seeing that various | ||
6 | different targets were rolling their own data strutures, for example: | ||
7 | |||
8 | - Mikulas Patocka's multisnap implementation | ||
9 | - Heinz Mauelshagen's thin provisioning target | ||
10 | - Another btree-based caching target posted to dm-devel | ||
11 | - Another multi-snapshot target based on a design of Daniel Phillips | ||
12 | |||
13 | Maintaining these data structures takes a lot of work, so if possible | ||
14 | we'd like to reduce the number. | ||
15 | |||
16 | The persistent-data library is an attempt to provide a re-usable | ||
17 | framework for people who want to store metadata in device-mapper | ||
18 | targets. It's currently used by the thin-provisioning target and an | ||
19 | upcoming hierarchical storage target. | ||
20 | |||
21 | Overview | ||
22 | ======== | ||
23 | |||
24 | The main documentation is in the header files which can all be found | ||
25 | under drivers/md/persistent-data. | ||
26 | |||
27 | The block manager | ||
28 | ----------------- | ||
29 | |||
30 | dm-block-manager.[hc] | ||
31 | |||
32 | This provides access to the data on disk in fixed sized-blocks. There | ||
33 | is a read/write locking interface to prevent concurrent accesses, and | ||
34 | keep data that is being used in the cache. | ||
35 | |||
36 | Clients of persistent-data are unlikely to use this directly. | ||
37 | |||
38 | The transaction manager | ||
39 | ----------------------- | ||
40 | |||
41 | dm-transaction-manager.[hc] | ||
42 | |||
43 | This restricts access to blocks and enforces copy-on-write semantics. | ||
44 | The only way you can get hold of a writable block through the | ||
45 | transaction manager is by shadowing an existing block (ie. doing | ||
46 | copy-on-write) or allocating a fresh one. Shadowing is elided within | ||
47 | the same transaction so performance is reasonable. The commit method | ||
48 | ensures that all data is flushed before it writes the superblock. | ||
49 | On power failure your metadata will be as it was when last committed. | ||
50 | |||
51 | The Space Maps | ||
52 | -------------- | ||
53 | |||
54 | dm-space-map.h | ||
55 | dm-space-map-metadata.[hc] | ||
56 | dm-space-map-disk.[hc] | ||
57 | |||
58 | On-disk data structures that keep track of reference counts of blocks. | ||
59 | Also acts as the allocator of new blocks. Currently two | ||
60 | implementations: a simpler one for managing blocks on a different | ||
61 | device (eg. thinly-provisioned data blocks); and one for managing | ||
62 | the metadata space. The latter is complicated by the need to store | ||
63 | its own data within the space it's managing. | ||
64 | |||
65 | The data structures | ||
66 | ------------------- | ||
67 | |||
68 | dm-btree.[hc] | ||
69 | dm-btree-remove.c | ||
70 | dm-btree-spine.c | ||
71 | dm-btree-internal.h | ||
72 | |||
73 | Currently there is only one data structure, a hierarchical btree. | ||
74 | There are plans to add more. For example, something with an | ||
75 | array-like interface would see a lot of use. | ||
76 | |||
77 | The btree is 'hierarchical' in that you can define it to be composed | ||
78 | of nested btrees, and take multiple keys. For example, the | ||
79 | thin-provisioning target uses a btree with two levels of nesting. | ||
80 | The first maps a device id to a mapping tree, and that in turn maps a | ||
81 | virtual block to a physical block. | ||
82 | |||
83 | Values stored in the btrees can have arbitrary size. Keys are always | ||
84 | 64bits, although nesting allows you to use multiple keys. | ||
diff --git a/Documentation/device-mapper/thin-provisioning.txt b/Documentation/device-mapper/thin-provisioning.txt new file mode 100644 index 000000000000..801d9d1cf82b --- /dev/null +++ b/Documentation/device-mapper/thin-provisioning.txt | |||
@@ -0,0 +1,285 @@ | |||
1 | Introduction | ||
2 | ============ | ||
3 | |||
4 | This document descibes a collection of device-mapper targets that | ||
5 | between them implement thin-provisioning and snapshots. | ||
6 | |||
7 | The main highlight of this implementation, compared to the previous | ||
8 | implementation of snapshots, is that it allows many virtual devices to | ||
9 | be stored on the same data volume. This simplifies administration and | ||
10 | allows the sharing of data between volumes, thus reducing disk usage. | ||
11 | |||
12 | Another significant feature is support for an arbitrary depth of | ||
13 | recursive snapshots (snapshots of snapshots of snapshots ...). The | ||
14 | previous implementation of snapshots did this by chaining together | ||
15 | lookup tables, and so performance was O(depth). This new | ||
16 | implementation uses a single data structure to avoid this degradation | ||
17 | with depth. Fragmentation may still be an issue, however, in some | ||
18 | scenarios. | ||
19 | |||
20 | Metadata is stored on a separate device from data, giving the | ||
21 | administrator some freedom, for example to: | ||
22 | |||
23 | - Improve metadata resilience by storing metadata on a mirrored volume | ||
24 | but data on a non-mirrored one. | ||
25 | |||
26 | - Improve performance by storing the metadata on SSD. | ||
27 | |||
28 | Status | ||
29 | ====== | ||
30 | |||
31 | These targets are very much still in the EXPERIMENTAL state. Please | ||
32 | do not yet rely on them in production. But do experiment and offer us | ||
33 | feedback. Different use cases will have different performance | ||
34 | characteristics, for example due to fragmentation of the data volume. | ||
35 | |||
36 | If you find this software is not performing as expected please mail | ||
37 | dm-devel@redhat.com with details and we'll try our best to improve | ||
38 | things for you. | ||
39 | |||
40 | Userspace tools for checking and repairing the metadata are under | ||
41 | development. | ||
42 | |||
43 | Cookbook | ||
44 | ======== | ||
45 | |||
46 | This section describes some quick recipes for using thin provisioning. | ||
47 | They use the dmsetup program to control the device-mapper driver | ||
48 | directly. End users will be advised to use a higher-level volume | ||
49 | manager such as LVM2 once support has been added. | ||
50 | |||
51 | Pool device | ||
52 | ----------- | ||
53 | |||
54 | The pool device ties together the metadata volume and the data volume. | ||
55 | It maps I/O linearly to the data volume and updates the metadata via | ||
56 | two mechanisms: | ||
57 | |||
58 | - Function calls from the thin targets | ||
59 | |||
60 | - Device-mapper 'messages' from userspace which control the creation of new | ||
61 | virtual devices amongst other things. | ||
62 | |||
63 | Setting up a fresh pool device | ||
64 | ------------------------------ | ||
65 | |||
66 | Setting up a pool device requires a valid metadata device, and a | ||
67 | data device. If you do not have an existing metadata device you can | ||
68 | make one by zeroing the first 4k to indicate empty metadata. | ||
69 | |||
70 | dd if=/dev/zero of=$metadata_dev bs=4096 count=1 | ||
71 | |||
72 | The amount of metadata you need will vary according to how many blocks | ||
73 | are shared between thin devices (i.e. through snapshots). If you have | ||
74 | less sharing than average you'll need a larger-than-average metadata device. | ||
75 | |||
76 | As a guide, we suggest you calculate the number of bytes to use in the | ||
77 | metadata device as 48 * $data_dev_size / $data_block_size but round it up | ||
78 | to 2MB if the answer is smaller. The largest size supported is 16GB. | ||
79 | |||
80 | If you're creating large numbers of snapshots which are recording large | ||
81 | amounts of change, you may need find you need to increase this. | ||
82 | |||
83 | Reloading a pool table | ||
84 | ---------------------- | ||
85 | |||
86 | You may reload a pool's table, indeed this is how the pool is resized | ||
87 | if it runs out of space. (N.B. While specifying a different metadata | ||
88 | device when reloading is not forbidden at the moment, things will go | ||
89 | wrong if it does not route I/O to exactly the same on-disk location as | ||
90 | previously.) | ||
91 | |||
92 | Using an existing pool device | ||
93 | ----------------------------- | ||
94 | |||
95 | dmsetup create pool \ | ||
96 | --table "0 20971520 thin-pool $metadata_dev $data_dev \ | ||
97 | $data_block_size $low_water_mark" | ||
98 | |||
99 | $data_block_size gives the smallest unit of disk space that can be | ||
100 | allocated at a time expressed in units of 512-byte sectors. People | ||
101 | primarily interested in thin provisioning may want to use a value such | ||
102 | as 1024 (512KB). People doing lots of snapshotting may want a smaller value | ||
103 | such as 128 (64KB). If you are not zeroing newly-allocated data, | ||
104 | a larger $data_block_size in the region of 256000 (128MB) is suggested. | ||
105 | $data_block_size must be the same for the lifetime of the | ||
106 | metadata device. | ||
107 | |||
108 | $low_water_mark is expressed in blocks of size $data_block_size. If | ||
109 | free space on the data device drops below this level then a dm event | ||
110 | will be triggered which a userspace daemon should catch allowing it to | ||
111 | extend the pool device. Only one such event will be sent. | ||
112 | Resuming a device with a new table itself triggers an event so the | ||
113 | userspace daemon can use this to detect a situation where a new table | ||
114 | already exceeds the threshold. | ||
115 | |||
116 | Thin provisioning | ||
117 | ----------------- | ||
118 | |||
119 | i) Creating a new thinly-provisioned volume. | ||
120 | |||
121 | To create a new thinly- provisioned volume you must send a message to an | ||
122 | active pool device, /dev/mapper/pool in this example. | ||
123 | |||
124 | dmsetup message /dev/mapper/pool 0 "create_thin 0" | ||
125 | |||
126 | Here '0' is an identifier for the volume, a 24-bit number. It's up | ||
127 | to the caller to allocate and manage these identifiers. If the | ||
128 | identifier is already in use, the message will fail with -EEXIST. | ||
129 | |||
130 | ii) Using a thinly-provisioned volume. | ||
131 | |||
132 | Thinly-provisioned volumes are activated using the 'thin' target: | ||
133 | |||
134 | dmsetup create thin --table "0 2097152 thin /dev/mapper/pool 0" | ||
135 | |||
136 | The last parameter is the identifier for the thinp device. | ||
137 | |||
138 | Internal snapshots | ||
139 | ------------------ | ||
140 | |||
141 | i) Creating an internal snapshot. | ||
142 | |||
143 | Snapshots are created with another message to the pool. | ||
144 | |||
145 | N.B. If the origin device that you wish to snapshot is active, you | ||
146 | must suspend it before creating the snapshot to avoid corruption. | ||
147 | This is NOT enforced at the moment, so please be careful! | ||
148 | |||
149 | dmsetup suspend /dev/mapper/thin | ||
150 | dmsetup message /dev/mapper/pool 0 "create_snap 1 0" | ||
151 | dmsetup resume /dev/mapper/thin | ||
152 | |||
153 | Here '1' is the identifier for the volume, a 24-bit number. '0' is the | ||
154 | identifier for the origin device. | ||
155 | |||
156 | ii) Using an internal snapshot. | ||
157 | |||
158 | Once created, the user doesn't have to worry about any connection | ||
159 | between the origin and the snapshot. Indeed the snapshot is no | ||
160 | different from any other thinly-provisioned device and can be | ||
161 | snapshotted itself via the same method. It's perfectly legal to | ||
162 | have only one of them active, and there's no ordering requirement on | ||
163 | activating or removing them both. (This differs from conventional | ||
164 | device-mapper snapshots.) | ||
165 | |||
166 | Activate it exactly the same way as any other thinly-provisioned volume: | ||
167 | |||
168 | dmsetup create snap --table "0 2097152 thin /dev/mapper/pool 1" | ||
169 | |||
170 | Deactivation | ||
171 | ------------ | ||
172 | |||
173 | All devices using a pool must be deactivated before the pool itself | ||
174 | can be. | ||
175 | |||
176 | dmsetup remove thin | ||
177 | dmsetup remove snap | ||
178 | dmsetup remove pool | ||
179 | |||
180 | Reference | ||
181 | ========= | ||
182 | |||
183 | 'thin-pool' target | ||
184 | ------------------ | ||
185 | |||
186 | i) Constructor | ||
187 | |||
188 | thin-pool <metadata dev> <data dev> <data block size (sectors)> \ | ||
189 | <low water mark (blocks)> [<number of feature args> [<arg>]*] | ||
190 | |||
191 | Optional feature arguments: | ||
192 | - 'skip_block_zeroing': skips the zeroing of newly-provisioned blocks. | ||
193 | |||
194 | Data block size must be between 64KB (128 sectors) and 1GB | ||
195 | (2097152 sectors) inclusive. | ||
196 | |||
197 | |||
198 | ii) Status | ||
199 | |||
200 | <transaction id> <used metadata blocks>/<total metadata blocks> | ||
201 | <used data blocks>/<total data blocks> <held metadata root> | ||
202 | |||
203 | |||
204 | transaction id: | ||
205 | A 64-bit number used by userspace to help synchronise with metadata | ||
206 | from volume managers. | ||
207 | |||
208 | used data blocks / total data blocks | ||
209 | If the number of free blocks drops below the pool's low water mark a | ||
210 | dm event will be sent to userspace. This event is edge-triggered and | ||
211 | it will occur only once after each resume so volume manager writers | ||
212 | should register for the event and then check the target's status. | ||
213 | |||
214 | held metadata root: | ||
215 | The location, in sectors, of the metadata root that has been | ||
216 | 'held' for userspace read access. '-' indicates there is no | ||
217 | held root. This feature is not yet implemented so '-' is | ||
218 | always returned. | ||
219 | |||
220 | iii) Messages | ||
221 | |||
222 | create_thin <dev id> | ||
223 | |||
224 | Create a new thinly-provisioned device. | ||
225 | <dev id> is an arbitrary unique 24-bit identifier chosen by | ||
226 | the caller. | ||
227 | |||
228 | create_snap <dev id> <origin id> | ||
229 | |||
230 | Create a new snapshot of another thinly-provisioned device. | ||
231 | <dev id> is an arbitrary unique 24-bit identifier chosen by | ||
232 | the caller. | ||
233 | <origin id> is the identifier of the thinly-provisioned device | ||
234 | of which the new device will be a snapshot. | ||
235 | |||
236 | delete <dev id> | ||
237 | |||
238 | Deletes a thin device. Irreversible. | ||
239 | |||
240 | trim <dev id> <new size in sectors> | ||
241 | |||
242 | Delete mappings from the end of a thin device. Irreversible. | ||
243 | You might want to use this if you're reducing the size of | ||
244 | your thinly-provisioned device. In many cases, due to the | ||
245 | sharing of blocks between devices, it is not possible to | ||
246 | determine in advance how much space 'trim' will release. (In | ||
247 | future a userspace tool might be able to perform this | ||
248 | calculation.) | ||
249 | |||
250 | set_transaction_id <current id> <new id> | ||
251 | |||
252 | Userland volume managers, such as LVM, need a way to | ||
253 | synchronise their external metadata with the internal metadata of the | ||
254 | pool target. The thin-pool target offers to store an | ||
255 | arbitrary 64-bit transaction id and return it on the target's | ||
256 | status line. To avoid races you must provide what you think | ||
257 | the current transaction id is when you change it with this | ||
258 | compare-and-swap message. | ||
259 | |||
260 | 'thin' target | ||
261 | ------------- | ||
262 | |||
263 | i) Constructor | ||
264 | |||
265 | thin <pool dev> <dev id> | ||
266 | |||
267 | pool dev: | ||
268 | the thin-pool device, e.g. /dev/mapper/my_pool or 253:0 | ||
269 | |||
270 | dev id: | ||
271 | the internal device identifier of the device to be | ||
272 | activated. | ||
273 | |||
274 | The pool doesn't store any size against the thin devices. If you | ||
275 | load a thin target that is smaller than you've been using previously, | ||
276 | then you'll have no access to blocks mapped beyond the end. If you | ||
277 | load a target that is bigger than before, then extra blocks will be | ||
278 | provisioned as and when needed. | ||
279 | |||
280 | If you wish to reduce the size of your thin device and potentially | ||
281 | regain some space then send the 'trim' message to the pool. | ||
282 | |||
283 | ii) Status | ||
284 | |||
285 | <nr mapped sectors> <highest mapped sector> | ||
diff --git a/Documentation/devicetree/bindings/arm/calxeda.txt b/Documentation/devicetree/bindings/arm/calxeda.txt new file mode 100644 index 000000000000..4755caaccba6 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/calxeda.txt | |||
@@ -0,0 +1,8 @@ | |||
1 | Calxeda Highbank Platforms Device Tree Bindings | ||
2 | ----------------------------------------------- | ||
3 | |||
4 | Boards with Calxeda Cortex-A9 based Highbank SOC shall have the following | ||
5 | properties. | ||
6 | |||
7 | Required root node properties: | ||
8 | - compatible = "calxeda,highbank"; | ||
diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt new file mode 100644 index 000000000000..c9848ad0e2e3 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/fsl.txt | |||
@@ -0,0 +1,26 @@ | |||
1 | Freescale i.MX Platforms Device Tree Bindings | ||
2 | ----------------------------------------------- | ||
3 | |||
4 | i.MX51 Babbage Board | ||
5 | Required root node properties: | ||
6 | - compatible = "fsl,imx51-babbage", "fsl,imx51"; | ||
7 | |||
8 | i.MX53 Automotive Reference Design Board | ||
9 | Required root node properties: | ||
10 | - compatible = "fsl,imx53-ard", "fsl,imx53"; | ||
11 | |||
12 | i.MX53 Evaluation Kit | ||
13 | Required root node properties: | ||
14 | - compatible = "fsl,imx53-evk", "fsl,imx53"; | ||
15 | |||
16 | i.MX53 Quick Start Board | ||
17 | Required root node properties: | ||
18 | - compatible = "fsl,imx53-qsb", "fsl,imx53"; | ||
19 | |||
20 | i.MX53 Smart Mobile Reference Design Board | ||
21 | Required root node properties: | ||
22 | - compatible = "fsl,imx53-smd", "fsl,imx53"; | ||
23 | |||
24 | i.MX6 Quad SABRE Automotive Board | ||
25 | Required root node properties: | ||
26 | - compatible = "fsl,imx6q-sabreauto", "fsl,imx6q"; | ||
diff --git a/Documentation/devicetree/bindings/arm/gic.txt b/Documentation/devicetree/bindings/arm/gic.txt new file mode 100644 index 000000000000..52916b4aa1fe --- /dev/null +++ b/Documentation/devicetree/bindings/arm/gic.txt | |||
@@ -0,0 +1,55 @@ | |||
1 | * ARM Generic Interrupt Controller | ||
2 | |||
3 | ARM SMP cores are often associated with a GIC, providing per processor | ||
4 | interrupts (PPI), shared processor interrupts (SPI) and software | ||
5 | generated interrupts (SGI). | ||
6 | |||
7 | Primary GIC is attached directly to the CPU and typically has PPIs and SGIs. | ||
8 | Secondary GICs are cascaded into the upward interrupt controller and do not | ||
9 | have PPIs or SGIs. | ||
10 | |||
11 | Main node required properties: | ||
12 | |||
13 | - compatible : should be one of: | ||
14 | "arm,cortex-a9-gic" | ||
15 | "arm,arm11mp-gic" | ||
16 | - interrupt-controller : Identifies the node as an interrupt controller | ||
17 | - #interrupt-cells : Specifies the number of cells needed to encode an | ||
18 | interrupt source. The type shall be a <u32> and the value shall be 3. | ||
19 | |||
20 | The 1st cell is the interrupt type; 0 for SPI interrupts, 1 for PPI | ||
21 | interrupts. | ||
22 | |||
23 | The 2nd cell contains the interrupt number for the interrupt type. | ||
24 | SPI interrupts are in the range [0-987]. PPI interrupts are in the | ||
25 | range [0-15]. | ||
26 | |||
27 | The 3rd cell is the flags, encoded as follows: | ||
28 | bits[3:0] trigger type and level flags. | ||
29 | 1 = low-to-high edge triggered | ||
30 | 2 = high-to-low edge triggered | ||
31 | 4 = active high level-sensitive | ||
32 | 8 = active low level-sensitive | ||
33 | bits[15:8] PPI interrupt cpu mask. Each bit corresponds to each of | ||
34 | the 8 possible cpus attached to the GIC. A bit set to '1' indicated | ||
35 | the interrupt is wired to that CPU. Only valid for PPI interrupts. | ||
36 | |||
37 | - reg : Specifies base physical address(s) and size of the GIC registers. The | ||
38 | first region is the GIC distributor register base and size. The 2nd region is | ||
39 | the GIC cpu interface register base and size. | ||
40 | |||
41 | Optional | ||
42 | - interrupts : Interrupt source of the parent interrupt controller. Only | ||
43 | present on secondary GICs. | ||
44 | |||
45 | Example: | ||
46 | |||
47 | intc: interrupt-controller@fff11000 { | ||
48 | compatible = "arm,cortex-a9-gic"; | ||
49 | #interrupt-cells = <3>; | ||
50 | #address-cells = <1>; | ||
51 | interrupt-controller; | ||
52 | reg = <0xfff11000 0x1000>, | ||
53 | <0xfff10100 0x100>; | ||
54 | }; | ||
55 | |||
diff --git a/Documentation/devicetree/bindings/arm/omap/dsp.txt b/Documentation/devicetree/bindings/arm/omap/dsp.txt new file mode 100644 index 000000000000..d3830a32ce08 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/omap/dsp.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | * TI - DSP (Digital Signal Processor) | ||
2 | |||
3 | TI DSP included in OMAP SoC | ||
4 | |||
5 | Required properties: | ||
6 | - compatible : Should be "ti,omap3-c64" for OMAP3 & 4 | ||
7 | - ti,hwmods: "dsp" | ||
8 | |||
9 | Examples: | ||
10 | |||
11 | dsp { | ||
12 | compatible = "ti,omap3-c64"; | ||
13 | ti,hwmods = "dsp"; | ||
14 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/omap/iva.txt b/Documentation/devicetree/bindings/arm/omap/iva.txt new file mode 100644 index 000000000000..6d6295171358 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/omap/iva.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | * TI - IVA (Imaging and Video Accelerator) subsystem | ||
2 | |||
3 | The IVA contain various audio, video or imaging HW accelerator | ||
4 | depending of the version. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible : Should be: | ||
8 | - "ti,ivahd" for OMAP4 | ||
9 | - "ti,iva2.2" for OMAP3 | ||
10 | - "ti,iva2.1" for OMAP2430 | ||
11 | - "ti,iva1" for OMAP2420 | ||
12 | - ti,hwmods: "iva" | ||
13 | |||
14 | Examples: | ||
15 | |||
16 | iva { | ||
17 | compatible = "ti,ivahd", "ti,iva"; | ||
18 | ti,hwmods = "iva"; | ||
19 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/omap/l3-noc.txt b/Documentation/devicetree/bindings/arm/omap/l3-noc.txt new file mode 100644 index 000000000000..6888a5efc860 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/omap/l3-noc.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | * TI - L3 Network On Chip (NoC) | ||
2 | |||
3 | This version is an implementation of the generic NoC IP | ||
4 | provided by Arteris. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible : Should be "ti,omap3-l3-smx" for OMAP3 family | ||
8 | Should be "ti,omap4-l3-noc" for OMAP4 family | ||
9 | - ti,hwmods: "l3_main_1", ... One hwmod for each noc domain. | ||
10 | |||
11 | Examples: | ||
12 | |||
13 | ocp { | ||
14 | compatible = "ti,omap4-l3-noc", "simple-bus"; | ||
15 | #address-cells = <1>; | ||
16 | #size-cells = <1>; | ||
17 | ranges; | ||
18 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; | ||
19 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/omap/mpu.txt b/Documentation/devicetree/bindings/arm/omap/mpu.txt new file mode 100644 index 000000000000..1a5a42ce21bb --- /dev/null +++ b/Documentation/devicetree/bindings/arm/omap/mpu.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | * TI - MPU (Main Processor Unit) subsystem | ||
2 | |||
3 | The MPU subsystem contain one or several ARM cores | ||
4 | depending of the version. | ||
5 | The MPU contain CPUs, GIC, L2 cache and a local PRCM. | ||
6 | |||
7 | Required properties: | ||
8 | - compatible : Should be "ti,omap3-mpu" for OMAP3 | ||
9 | Should be "ti,omap4-mpu" for OMAP4 | ||
10 | - ti,hwmods: "mpu" | ||
11 | |||
12 | Examples: | ||
13 | |||
14 | - For an OMAP4 SMP system: | ||
15 | |||
16 | mpu { | ||
17 | compatible = "ti,omap4-mpu"; | ||
18 | ti,hwmods = "mpu"; | ||
19 | }; | ||
20 | |||
21 | |||
22 | - For an OMAP3 monocore system: | ||
23 | |||
24 | mpu { | ||
25 | compatible = "ti,omap3-mpu"; | ||
26 | ti,hwmods = "mpu"; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt new file mode 100644 index 000000000000..dbdab40ed3a6 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt | |||
@@ -0,0 +1,43 @@ | |||
1 | * Texas Instruments OMAP | ||
2 | |||
3 | OMAP is currently using a static file per SoC family to describe the | ||
4 | IPs present in the SoC. | ||
5 | On top of that an omap_device is created to extend the platform_device | ||
6 | capabilities and to allow binding with one or several hwmods. | ||
7 | The hwmods will contain all the information to build the device: | ||
8 | adresse range, irq lines, dma lines, interconnect, PRCM register, | ||
9 | clock domain, input clocks. | ||
10 | For the moment just point to the existing hwmod, the next step will be | ||
11 | to move data from hwmod to device-tree representation. | ||
12 | |||
13 | |||
14 | Required properties: | ||
15 | - compatible: Every devices present in OMAP SoC should be in the | ||
16 | form: "ti,XXX" | ||
17 | - ti,hwmods: list of hwmod names (ascii strings), that comes from the OMAP | ||
18 | HW documentation, attached to a device. Must contain at least | ||
19 | one hwmod. | ||
20 | |||
21 | Optional properties: | ||
22 | - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module | ||
23 | during suspend. | ||
24 | |||
25 | |||
26 | Example: | ||
27 | |||
28 | spinlock@1 { | ||
29 | compatible = "ti,omap4-spinlock"; | ||
30 | ti,hwmods = "spinlock"; | ||
31 | }; | ||
32 | |||
33 | |||
34 | Boards: | ||
35 | |||
36 | - OMAP3 BeagleBoard : Low cost community board | ||
37 | compatible = "ti,omap3-beagle", "ti,omap3" | ||
38 | |||
39 | - OMAP4 SDP : Software Developement Board | ||
40 | compatible = "ti,omap4-sdp", "ti,omap4430" | ||
41 | |||
42 | - OMAP4 PandaBoard : Low cost community board | ||
43 | compatible = "ti,omap4-panda", "ti,omap4430" | ||
diff --git a/Documentation/devicetree/bindings/arm/picoxcell.txt b/Documentation/devicetree/bindings/arm/picoxcell.txt new file mode 100644 index 000000000000..e75c0ef51e69 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/picoxcell.txt | |||
@@ -0,0 +1,24 @@ | |||
1 | Picochip picoXcell device tree bindings. | ||
2 | ======================================== | ||
3 | |||
4 | Required root node properties: | ||
5 | - compatible: | ||
6 | - "picochip,pc7302-pc3x3" : PC7302 development board with PC3X3 device. | ||
7 | - "picochip,pc7302-pc3x2" : PC7302 development board with PC3X2 device. | ||
8 | - "picochip,pc3x3" : picoXcell PC3X3 device based board. | ||
9 | - "picochip,pc3x2" : picoXcell PC3X2 device based board. | ||
10 | |||
11 | Timers required properties: | ||
12 | - compatible = "picochip,pc3x2-timer" | ||
13 | - interrupts : The single IRQ line for the timer. | ||
14 | - clock-freq : The frequency in HZ of the timer. | ||
15 | - reg : The register bank for the timer. | ||
16 | |||
17 | Note: two timers are required - one for the scheduler clock and one for the | ||
18 | event tick/NOHZ. | ||
19 | |||
20 | VIC required properties: | ||
21 | - compatible = "arm,pl192-vic". | ||
22 | - interrupt-controller. | ||
23 | - reg : The register bank for the device. | ||
24 | - #interrupt-cells : Must be 1. | ||
diff --git a/Documentation/devicetree/bindings/ata/calxeda-sata.txt b/Documentation/devicetree/bindings/ata/calxeda-sata.txt new file mode 100644 index 000000000000..79caa5651f53 --- /dev/null +++ b/Documentation/devicetree/bindings/ata/calxeda-sata.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | * Calxeda SATA Controller | ||
2 | |||
3 | SATA nodes are defined to describe on-chip Serial ATA controllers. | ||
4 | Each SATA controller should have its own node. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible : compatible list, contains "calxeda,hb-ahci" | ||
8 | - interrupts : <interrupt mapping for SATA IRQ> | ||
9 | - reg : <registers mapping> | ||
10 | |||
11 | Example: | ||
12 | sata@ffe08000 { | ||
13 | compatible = "calxeda,hb-ahci"; | ||
14 | reg = <0xffe08000 0x1000>; | ||
15 | interrupts = <115>; | ||
16 | }; | ||
17 | |||
diff --git a/Documentation/devicetree/bindings/crypto/picochip-spacc.txt b/Documentation/devicetree/bindings/crypto/picochip-spacc.txt new file mode 100644 index 000000000000..d8609ece1f4c --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/picochip-spacc.txt | |||
@@ -0,0 +1,23 @@ | |||
1 | Picochip picoXcell SPAcc (Security Protocol Accelerator) bindings | ||
2 | |||
3 | Picochip picoXcell devices contain crypto offload engines that may be used for | ||
4 | IPSEC and femtocell layer 2 ciphering. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible : "picochip,spacc-ipsec" for the IPSEC offload engine | ||
8 | "picochip,spacc-l2" for the femtocell layer 2 ciphering engine. | ||
9 | - reg : Offset and length of the register set for this device | ||
10 | - interrupt-parent : The interrupt controller that controls the SPAcc | ||
11 | interrupt. | ||
12 | - interrupts : The interrupt line from the SPAcc. | ||
13 | - ref-clock : The input clock that drives the SPAcc. | ||
14 | |||
15 | Example SPAcc node: | ||
16 | |||
17 | spacc@10000 { | ||
18 | compatible = "picochip,spacc-ipsec"; | ||
19 | reg = <0x100000 0x10000>; | ||
20 | interrupt-parent = <&vic0>; | ||
21 | interrupts = <24>; | ||
22 | ref-clock = <&ipsec_clk>, "ref"; | ||
23 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/fsl-imx-i2c.txt b/Documentation/devicetree/bindings/i2c/fsl-imx-i2c.txt new file mode 100644 index 000000000000..f3cf43b66f7e --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/fsl-imx-i2c.txt | |||
@@ -0,0 +1,25 @@ | |||
1 | * Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "fsl,<chip>-i2c" | ||
5 | - reg : Should contain I2C/HS-I2C registers location and length | ||
6 | - interrupts : Should contain I2C/HS-I2C interrupt | ||
7 | |||
8 | Optional properties: | ||
9 | - clock-frequency : Constains desired I2C/HS-I2C bus clock frequency in Hz. | ||
10 | The absence of the propoerty indicates the default frequency 100 kHz. | ||
11 | |||
12 | Examples: | ||
13 | |||
14 | i2c@83fc4000 { /* I2C2 on i.MX51 */ | ||
15 | compatible = "fsl,imx51-i2c", "fsl,imx1-i2c"; | ||
16 | reg = <0x83fc4000 0x4000>; | ||
17 | interrupts = <63>; | ||
18 | }; | ||
19 | |||
20 | i2c@70038000 { /* HS-I2C on i.MX51 */ | ||
21 | compatible = "fsl,imx51-i2c", "fsl,imx1-i2c"; | ||
22 | reg = <0x70038000 0x4000>; | ||
23 | interrupts = <64>; | ||
24 | clock-frequency = <400000>; | ||
25 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/samsung-i2c.txt b/Documentation/devicetree/bindings/i2c/samsung-i2c.txt new file mode 100644 index 000000000000..38832c712919 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/samsung-i2c.txt | |||
@@ -0,0 +1,39 @@ | |||
1 | * Samsung's I2C controller | ||
2 | |||
3 | The Samsung's I2C controller is used to interface with I2C devices. | ||
4 | |||
5 | Required properties: | ||
6 | - compatible: value should be either of the following. | ||
7 | (a) "samsung, s3c2410-i2c", for i2c compatible with s3c2410 i2c. | ||
8 | (b) "samsung, s3c2440-i2c", for i2c compatible with s3c2440 i2c. | ||
9 | - reg: physical base address of the controller and length of memory mapped | ||
10 | region. | ||
11 | - interrupts: interrupt number to the cpu. | ||
12 | - samsung,i2c-sda-delay: Delay (in ns) applied to data line (SDA) edges. | ||
13 | - gpios: The order of the gpios should be the following: <SDA, SCL>. | ||
14 | The gpio specifier depends on the gpio controller. | ||
15 | |||
16 | Optional properties: | ||
17 | - samsung,i2c-slave-addr: Slave address in multi-master enviroment. If not | ||
18 | specified, default value is 0. | ||
19 | - samsung,i2c-max-bus-freq: Desired frequency in Hz of the bus. If not | ||
20 | specified, the default value in Hz is 100000. | ||
21 | |||
22 | Example: | ||
23 | |||
24 | i2c@13870000 { | ||
25 | compatible = "samsung,s3c2440-i2c"; | ||
26 | reg = <0x13870000 0x100>; | ||
27 | interrupts = <345>; | ||
28 | samsung,i2c-sda-delay = <100>; | ||
29 | samsung,i2c-max-bus-freq = <100000>; | ||
30 | gpios = <&gpd1 2 0 /* SDA */ | ||
31 | &gpd1 3 0 /* SCL */>; | ||
32 | #address-cells = <1>; | ||
33 | #size-cells = <0>; | ||
34 | |||
35 | wm8994@1a { | ||
36 | compatible = "wlf,wm8994"; | ||
37 | reg = <0x1a>; | ||
38 | }; | ||
39 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinmux/pinmux_nvidia.txt b/Documentation/devicetree/bindings/pinmux/pinmux_nvidia.txt new file mode 100644 index 000000000000..36f82dbdd14d --- /dev/null +++ b/Documentation/devicetree/bindings/pinmux/pinmux_nvidia.txt | |||
@@ -0,0 +1,5 @@ | |||
1 | NVIDIA Tegra 2 pinmux controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "nvidia,tegra20-pinmux" | ||
5 | |||
diff --git a/Documentation/devicetree/bindings/tty/serial/msm_serial.txt b/Documentation/devicetree/bindings/tty/serial/msm_serial.txt new file mode 100644 index 000000000000..aef383eb8876 --- /dev/null +++ b/Documentation/devicetree/bindings/tty/serial/msm_serial.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | * Qualcomm MSM UART | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : | ||
5 | - "qcom,msm-uart", and one of "qcom,msm-hsuart" or | ||
6 | "qcom,msm-lsuart". | ||
7 | - reg : offset and length of the register set for the device | ||
8 | for the hsuart operating in compatible mode, there should be a | ||
9 | second pair describing the gsbi registers. | ||
10 | - interrupts : should contain the uart interrupt. | ||
11 | |||
12 | There are two different UART blocks used in MSM devices, | ||
13 | "qcom,msm-hsuart" and "qcom,msm-lsuart". The msm-serial driver is | ||
14 | able to handle both of these, and matches against the "qcom,msm-uart" | ||
15 | as the compatibility. | ||
16 | |||
17 | The registers for the "qcom,msm-hsuart" device need to specify both | ||
18 | register blocks, even for the common driver. | ||
19 | |||
20 | Example: | ||
21 | |||
22 | uart@19c400000 { | ||
23 | compatible = "qcom,msm-hsuart", "qcom,msm-uart"; | ||
24 | reg = <0x19c40000 0x1000>, | ||
25 | <0x19c00000 0x1000>; | ||
26 | interrupts = <195>; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/virtio/mmio.txt b/Documentation/devicetree/bindings/virtio/mmio.txt new file mode 100644 index 000000000000..5069c1b8e193 --- /dev/null +++ b/Documentation/devicetree/bindings/virtio/mmio.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | * virtio memory mapped device | ||
2 | |||
3 | See http://ozlabs.org/~rusty/virtio-spec/ for more details. | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible: "virtio,mmio" compatibility string | ||
8 | - reg: control registers base address and size including configuration space | ||
9 | - interrupts: interrupt generated by the device | ||
10 | |||
11 | Example: | ||
12 | |||
13 | virtio_block@3000 { | ||
14 | compatible = "virtio,mmio"; | ||
15 | reg = <0x3000 0x100>; | ||
16 | interrupts = <41>; | ||
17 | } | ||
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 7c799fc5b88e..3d849122b5b1 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -133,41 +133,6 @@ Who: Pavel Machek <pavel@ucw.cz> | |||
133 | 133 | ||
134 | --------------------------- | 134 | --------------------------- |
135 | 135 | ||
136 | What: sys_sysctl | ||
137 | When: September 2010 | ||
138 | Option: CONFIG_SYSCTL_SYSCALL | ||
139 | Why: The same information is available in a more convenient from | ||
140 | /proc/sys, and none of the sysctl variables appear to be | ||
141 | important performance wise. | ||
142 | |||
143 | Binary sysctls are a long standing source of subtle kernel | ||
144 | bugs and security issues. | ||
145 | |||
146 | When I looked several months ago all I could find after | ||
147 | searching several distributions were 5 user space programs and | ||
148 | glibc (which falls back to /proc/sys) using this syscall. | ||
149 | |||
150 | The man page for sysctl(2) documents it as unusable for user | ||
151 | space programs. | ||
152 | |||
153 | sysctl(2) is not generally ABI compatible to a 32bit user | ||
154 | space application on a 64bit and a 32bit kernel. | ||
155 | |||
156 | For the last several months the policy has been no new binary | ||
157 | sysctls and no one has put forward an argument to use them. | ||
158 | |||
159 | Binary sysctls issues seem to keep happening appearing so | ||
160 | properly deprecating them (with a warning to user space) and a | ||
161 | 2 year grace warning period will mean eventually we can kill | ||
162 | them and end the pain. | ||
163 | |||
164 | In the mean time individual binary sysctls can be dealt with | ||
165 | in a piecewise fashion. | ||
166 | |||
167 | Who: Eric Biederman <ebiederm@xmission.com> | ||
168 | |||
169 | --------------------------- | ||
170 | |||
171 | What: /proc/<pid>/oom_adj | 136 | What: /proc/<pid>/oom_adj |
172 | When: August 2012 | 137 | When: August 2012 |
173 | Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's | 138 | Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's |
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 653380793a6c..d819ba16a0c7 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -29,6 +29,7 @@ d_hash no no no maybe | |||
29 | d_compare: yes no no maybe | 29 | d_compare: yes no no maybe |
30 | d_delete: no yes no no | 30 | d_delete: no yes no no |
31 | d_release: no no yes no | 31 | d_release: no no yes no |
32 | d_prune: no yes no no | ||
32 | d_iput: no no yes no | 33 | d_iput: no no yes no |
33 | d_dname: no no no no | 34 | d_dname: no no no no |
34 | d_automount: no no yes no | 35 | d_automount: no no yes no |
diff --git a/Documentation/filesystems/ext3.txt b/Documentation/filesystems/ext3.txt index 22f3a0eda1d2..b100adc38adb 100644 --- a/Documentation/filesystems/ext3.txt +++ b/Documentation/filesystems/ext3.txt | |||
@@ -73,14 +73,6 @@ nobarrier (*) This also requires an IO stack which can support | |||
73 | also be used to enable or disable barriers, for | 73 | also be used to enable or disable barriers, for |
74 | consistency with other ext3 mount options. | 74 | consistency with other ext3 mount options. |
75 | 75 | ||
76 | orlov (*) This enables the new Orlov block allocator. It is | ||
77 | enabled by default. | ||
78 | |||
79 | oldalloc This disables the Orlov block allocator and enables | ||
80 | the old block allocator. Orlov should have better | ||
81 | performance - we'd like to get some feedback if it's | ||
82 | the contrary for you. | ||
83 | |||
84 | user_xattr Enables Extended User Attributes. Additionally, you | 76 | user_xattr Enables Extended User Attributes. Additionally, you |
85 | need to have extended attribute support enabled in the | 77 | need to have extended attribute support enabled in the |
86 | kernel configuration (CONFIG_EXT3_FS_XATTR). See the | 78 | kernel configuration (CONFIG_EXT3_FS_XATTR). See the |
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt index 232a575a0c48..4917cf24a5e0 100644 --- a/Documentation/filesystems/ext4.txt +++ b/Documentation/filesystems/ext4.txt | |||
@@ -160,7 +160,9 @@ noload if the filesystem was not unmounted cleanly, | |||
160 | lead to any number of problems. | 160 | lead to any number of problems. |
161 | 161 | ||
162 | data=journal All data are committed into the journal prior to being | 162 | data=journal All data are committed into the journal prior to being |
163 | written into the main file system. | 163 | written into the main file system. Enabling |
164 | this mode will disable delayed allocation and | ||
165 | O_DIRECT support. | ||
164 | 166 | ||
165 | data=ordered (*) All data are forced directly out to the main file | 167 | data=ordered (*) All data are forced directly out to the main file |
166 | system prior to its metadata being committed to the | 168 | system prior to its metadata being committed to the |
@@ -201,30 +203,19 @@ inode_readahead_blks=n This tuning parameter controls the maximum | |||
201 | table readahead algorithm will pre-read into | 203 | table readahead algorithm will pre-read into |
202 | the buffer cache. The default value is 32 blocks. | 204 | the buffer cache. The default value is 32 blocks. |
203 | 205 | ||
204 | orlov (*) This enables the new Orlov block allocator. It is | 206 | nouser_xattr Disables Extended User Attributes. If you have extended |
205 | enabled by default. | 207 | attribute support enabled in the kernel configuration |
206 | 208 | (CONFIG_EXT4_FS_XATTR), extended attribute support | |
207 | oldalloc This disables the Orlov block allocator and enables | 209 | is enabled by default on mount. See the attr(5) manual |
208 | the old block allocator. Orlov should have better | 210 | page and http://acl.bestbits.at/ for more information |
209 | performance - we'd like to get some feedback if it's | 211 | about extended attributes. |
210 | the contrary for you. | ||
211 | |||
212 | user_xattr Enables Extended User Attributes. Additionally, you | ||
213 | need to have extended attribute support enabled in the | ||
214 | kernel configuration (CONFIG_EXT4_FS_XATTR). See the | ||
215 | attr(5) manual page and http://acl.bestbits.at/ to | ||
216 | learn more about extended attributes. | ||
217 | |||
218 | nouser_xattr Disables Extended User Attributes. | ||
219 | |||
220 | acl Enables POSIX Access Control Lists support. | ||
221 | Additionally, you need to have ACL support enabled in | ||
222 | the kernel configuration (CONFIG_EXT4_FS_POSIX_ACL). | ||
223 | See the acl(5) manual page and http://acl.bestbits.at/ | ||
224 | for more information. | ||
225 | 212 | ||
226 | noacl This option disables POSIX Access Control List | 213 | noacl This option disables POSIX Access Control List |
227 | support. | 214 | support. If ACL support is enabled in the kernel |
215 | configuration (CONFIG_EXT4_FS_POSIX_ACL), ACL is | ||
216 | enabled by default on mount. See the acl(5) manual | ||
217 | page and http://acl.bestbits.at/ for more information | ||
218 | about acl. | ||
228 | 219 | ||
229 | bsddf (*) Make 'df' act like BSD. | 220 | bsddf (*) Make 'df' act like BSD. |
230 | minixdf Make 'df' act like Minix. | 221 | minixdf Make 'df' act like Minix. |
@@ -419,8 +410,8 @@ written to the journal first, and then to its final location. | |||
419 | In the event of a crash, the journal can be replayed, bringing both data and | 410 | In the event of a crash, the journal can be replayed, bringing both data and |
420 | metadata into a consistent state. This mode is the slowest except when data | 411 | metadata into a consistent state. This mode is the slowest except when data |
421 | needs to be read from and written to disk at the same time where it | 412 | needs to be read from and written to disk at the same time where it |
422 | outperforms all others modes. Currently ext4 does not have delayed | 413 | outperforms all others modes. Enabling this mode will disable delayed |
423 | allocation support if this data journalling mode is selected. | 414 | allocation and O_DIRECT support. |
424 | 415 | ||
425 | /proc entries | 416 | /proc entries |
426 | ============= | 417 | ============= |
diff --git a/Documentation/hwmon/w83627ehf b/Documentation/hwmon/w83627ehf index 76ffef94ed75..3f44dbdfda70 100644 --- a/Documentation/hwmon/w83627ehf +++ b/Documentation/hwmon/w83627ehf | |||
@@ -14,6 +14,10 @@ Supported chips: | |||
14 | Prefix: 'w83627dhg' | 14 | Prefix: 'w83627dhg' |
15 | Addresses scanned: ISA address retrieved from Super I/O registers | 15 | Addresses scanned: ISA address retrieved from Super I/O registers |
16 | Datasheet: not available | 16 | Datasheet: not available |
17 | * Winbond W83627UHG | ||
18 | Prefix: 'w83627uhg' | ||
19 | Addresses scanned: ISA address retrieved from Super I/O registers | ||
20 | Datasheet: available from www.nuvoton.com | ||
17 | * Winbond W83667HG | 21 | * Winbond W83667HG |
18 | Prefix: 'w83667hg' | 22 | Prefix: 'w83667hg' |
19 | Addresses scanned: ISA address retrieved from Super I/O registers | 23 | Addresses scanned: ISA address retrieved from Super I/O registers |
@@ -42,14 +46,13 @@ Description | |||
42 | ----------- | 46 | ----------- |
43 | 47 | ||
44 | This driver implements support for the Winbond W83627EHF, W83627EHG, | 48 | This driver implements support for the Winbond W83627EHF, W83627EHG, |
45 | W83627DHG, W83627DHG-P, W83667HG, W83667HG-B, W83667HG-I (NCT6775F), | 49 | W83627DHG, W83627DHG-P, W83627UHG, W83667HG, W83667HG-B, W83667HG-I |
46 | and NCT6776F super I/O chips. We will refer to them collectively as | 50 | (NCT6775F), and NCT6776F super I/O chips. We will refer to them collectively |
47 | Winbond chips. | 51 | as Winbond chips. |
48 | 52 | ||
49 | The chips implement three temperature sensors (up to four for 667HG-B, and nine | 53 | The chips implement 2 to 4 temperature sensors (9 for NCT6775F and NCT6776F), |
50 | for NCT6775F and NCT6776F), five fan rotation speed sensors, ten analog voltage | 54 | 2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID |
51 | sensors (only nine for the 627DHG), one VID (6 pins for the 627EHF/EHG, 8 pins | 55 | (except for 627UHG), alarms with beep warnings (control unimplemented), |
52 | for the 627DHG and 667HG), alarms with beep warnings (control unimplemented), | ||
53 | and some automatic fan regulation strategies (plus manual fan control mode). | 56 | and some automatic fan regulation strategies (plus manual fan control mode). |
54 | 57 | ||
55 | The temperature sensor sources on W82677HG-B, NCT6775F, and NCT6776F are | 58 | The temperature sensor sources on W82677HG-B, NCT6775F, and NCT6776F are |
@@ -86,17 +89,16 @@ follows: | |||
86 | 89 | ||
87 | temp1 -> pwm1 | 90 | temp1 -> pwm1 |
88 | temp2 -> pwm2 | 91 | temp2 -> pwm2 |
89 | temp3 -> pwm3 | 92 | temp3 -> pwm3 (not on 627UHG) |
90 | prog -> pwm4 (not on 667HG and 667HG-B; the programmable setting is not | 93 | prog -> pwm4 (not on 667HG and 667HG-B; the programmable setting is not |
91 | supported by the driver) | 94 | supported by the driver) |
92 | 95 | ||
93 | /sys files | 96 | /sys files |
94 | ---------- | 97 | ---------- |
95 | 98 | ||
96 | name - this is a standard hwmon device entry. For the W83627EHF and W83627EHG, | 99 | name - this is a standard hwmon device entry, it contains the name of |
97 | it is set to "w83627ehf", for the W83627DHG it is set to "w83627dhg", | 100 | the device (see the prefix in the list of supported devices at |
98 | for the W83667HG and W83667HG-B it is set to "w83667hg", for NCT6775F it | 101 | the top of this file) |
99 | is set to "nct6775", and for NCT6776F it is set to "nct6776". | ||
100 | 102 | ||
101 | pwm[1-4] - this file stores PWM duty cycle or DC value (fan speed) in range: | 103 | pwm[1-4] - this file stores PWM duty cycle or DC value (fan speed) in range: |
102 | 0 (stop) to 255 (full) | 104 | 0 (stop) to 255 (full) |
diff --git a/Documentation/hwspinlock.txt b/Documentation/hwspinlock.txt index 7dcd1a4e726c..a903ee5e9776 100644 --- a/Documentation/hwspinlock.txt +++ b/Documentation/hwspinlock.txt | |||
@@ -39,23 +39,20 @@ independent, drivers. | |||
39 | in case an unused hwspinlock isn't available. Users of this | 39 | in case an unused hwspinlock isn't available. Users of this |
40 | API will usually want to communicate the lock's id to the remote core | 40 | API will usually want to communicate the lock's id to the remote core |
41 | before it can be used to achieve synchronization. | 41 | before it can be used to achieve synchronization. |
42 | Can be called from an atomic context (this function will not sleep) but | 42 | Should be called from a process context (might sleep). |
43 | not from within interrupt context. | ||
44 | 43 | ||
45 | struct hwspinlock *hwspin_lock_request_specific(unsigned int id); | 44 | struct hwspinlock *hwspin_lock_request_specific(unsigned int id); |
46 | - assign a specific hwspinlock id and return its address, or NULL | 45 | - assign a specific hwspinlock id and return its address, or NULL |
47 | if that hwspinlock is already in use. Usually board code will | 46 | if that hwspinlock is already in use. Usually board code will |
48 | be calling this function in order to reserve specific hwspinlock | 47 | be calling this function in order to reserve specific hwspinlock |
49 | ids for predefined purposes. | 48 | ids for predefined purposes. |
50 | Can be called from an atomic context (this function will not sleep) but | 49 | Should be called from a process context (might sleep). |
51 | not from within interrupt context. | ||
52 | 50 | ||
53 | int hwspin_lock_free(struct hwspinlock *hwlock); | 51 | int hwspin_lock_free(struct hwspinlock *hwlock); |
54 | - free a previously-assigned hwspinlock; returns 0 on success, or an | 52 | - free a previously-assigned hwspinlock; returns 0 on success, or an |
55 | appropriate error code on failure (e.g. -EINVAL if the hwspinlock | 53 | appropriate error code on failure (e.g. -EINVAL if the hwspinlock |
56 | is already free). | 54 | is already free). |
57 | Can be called from an atomic context (this function will not sleep) but | 55 | Should be called from a process context (might sleep). |
58 | not from within interrupt context. | ||
59 | 56 | ||
60 | int hwspin_lock_timeout(struct hwspinlock *hwlock, unsigned int timeout); | 57 | int hwspin_lock_timeout(struct hwspinlock *hwlock, unsigned int timeout); |
61 | - lock a previously-assigned hwspinlock with a timeout limit (specified in | 58 | - lock a previously-assigned hwspinlock with a timeout limit (specified in |
@@ -230,45 +227,62 @@ int hwspinlock_example2(void) | |||
230 | 227 | ||
231 | 4. API for implementors | 228 | 4. API for implementors |
232 | 229 | ||
233 | int hwspin_lock_register(struct hwspinlock *hwlock); | 230 | int hwspin_lock_register(struct hwspinlock_device *bank, struct device *dev, |
231 | const struct hwspinlock_ops *ops, int base_id, int num_locks); | ||
234 | - to be called from the underlying platform-specific implementation, in | 232 | - to be called from the underlying platform-specific implementation, in |
235 | order to register a new hwspinlock instance. Can be called from an atomic | 233 | order to register a new hwspinlock device (which is usually a bank of |
236 | context (this function will not sleep) but not from within interrupt | 234 | numerous locks). Should be called from a process context (this function |
237 | context. Returns 0 on success, or appropriate error code on failure. | 235 | might sleep). |
236 | Returns 0 on success, or appropriate error code on failure. | ||
238 | 237 | ||
239 | struct hwspinlock *hwspin_lock_unregister(unsigned int id); | 238 | int hwspin_lock_unregister(struct hwspinlock_device *bank); |
240 | - to be called from the underlying vendor-specific implementation, in order | 239 | - to be called from the underlying vendor-specific implementation, in order |
241 | to unregister an existing (and unused) hwspinlock instance. | 240 | to unregister an hwspinlock device (which is usually a bank of numerous |
242 | Can be called from an atomic context (will not sleep) but not from | 241 | locks). |
243 | within interrupt context. | 242 | Should be called from a process context (this function might sleep). |
244 | Returns the address of hwspinlock on success, or NULL on error (e.g. | 243 | Returns the address of hwspinlock on success, or NULL on error (e.g. |
245 | if the hwspinlock is sill in use). | 244 | if the hwspinlock is sill in use). |
246 | 245 | ||
247 | 5. struct hwspinlock | 246 | 5. Important structs |
248 | 247 | ||
249 | This struct represents an hwspinlock instance. It is registered by the | 248 | struct hwspinlock_device is a device which usually contains a bank |
250 | underlying hwspinlock implementation using the hwspin_lock_register() API. | 249 | of hardware locks. It is registered by the underlying hwspinlock |
250 | implementation using the hwspin_lock_register() API. | ||
251 | 251 | ||
252 | /** | 252 | /** |
253 | * struct hwspinlock - vendor-specific hwspinlock implementation | 253 | * struct hwspinlock_device - a device which usually spans numerous hwspinlocks |
254 | * | 254 | * @dev: underlying device, will be used to invoke runtime PM api |
255 | * @dev: underlying device, will be used with runtime PM api | 255 | * @ops: platform-specific hwspinlock handlers |
256 | * @ops: vendor-specific hwspinlock handlers | 256 | * @base_id: id index of the first lock in this device |
257 | * @id: a global, unique, system-wide, index of the lock. | 257 | * @num_locks: number of locks in this device |
258 | * @lock: initialized and used by hwspinlock core | 258 | * @lock: dynamically allocated array of 'struct hwspinlock' |
259 | * @owner: underlying implementation module, used to maintain module ref count | ||
260 | */ | 259 | */ |
261 | struct hwspinlock { | 260 | struct hwspinlock_device { |
262 | struct device *dev; | 261 | struct device *dev; |
263 | const struct hwspinlock_ops *ops; | 262 | const struct hwspinlock_ops *ops; |
264 | int id; | 263 | int base_id; |
264 | int num_locks; | ||
265 | struct hwspinlock lock[0]; | ||
266 | }; | ||
267 | |||
268 | struct hwspinlock_device contains an array of hwspinlock structs, each | ||
269 | of which represents a single hardware lock: | ||
270 | |||
271 | /** | ||
272 | * struct hwspinlock - this struct represents a single hwspinlock instance | ||
273 | * @bank: the hwspinlock_device structure which owns this lock | ||
274 | * @lock: initialized and used by hwspinlock core | ||
275 | * @priv: private data, owned by the underlying platform-specific hwspinlock drv | ||
276 | */ | ||
277 | struct hwspinlock { | ||
278 | struct hwspinlock_device *bank; | ||
265 | spinlock_t lock; | 279 | spinlock_t lock; |
266 | struct module *owner; | 280 | void *priv; |
267 | }; | 281 | }; |
268 | 282 | ||
269 | The underlying implementation is responsible to assign the dev, ops, id and | 283 | When registering a bank of locks, the hwspinlock driver only needs to |
270 | owner members. The lock member, OTOH, is initialized and used by the hwspinlock | 284 | set the priv members of the locks. The rest of the members are set and |
271 | core. | 285 | initialized by the hwspinlock core itself. |
272 | 286 | ||
273 | 6. Implementation callbacks | 287 | 6. Implementation callbacks |
274 | 288 | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 27e0488d54d2..a0c5c5f4fce6 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -741,10 +741,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
741 | See Documentation/block/cfq-iosched.txt and | 741 | See Documentation/block/cfq-iosched.txt and |
742 | Documentation/block/deadline-iosched.txt for details. | 742 | Documentation/block/deadline-iosched.txt for details. |
743 | 743 | ||
744 | elfcorehdr= [IA-64,PPC,SH,X86] | 744 | elfcorehdr=[size[KMG]@]offset[KMG] [IA64,PPC,SH,X86,S390] |
745 | Specifies physical address of start of kernel core | 745 | Specifies physical address of start of kernel core |
746 | image elf header. Generally kexec loader will | 746 | image elf header and optionally the size. Generally |
747 | pass this option to capture kernel. | 747 | kexec loader will pass this option to capture kernel. |
748 | See Documentation/kdump/kdump.txt for details. | 748 | See Documentation/kdump/kdump.txt for details. |
749 | 749 | ||
750 | enable_mtrr_cleanup [X86] | 750 | enable_mtrr_cleanup [X86] |
@@ -973,6 +973,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
973 | ignore_loglevel [KNL] | 973 | ignore_loglevel [KNL] |
974 | Ignore loglevel setting - this will print /all/ | 974 | Ignore loglevel setting - this will print /all/ |
975 | kernel messages to the console. Useful for debugging. | 975 | kernel messages to the console. Useful for debugging. |
976 | We also add it as printk module parameter, so users | ||
977 | could change it dynamically, usually by | ||
978 | /sys/module/printk/parameters/ignore_loglevel. | ||
976 | 979 | ||
977 | ihash_entries= [KNL] | 980 | ihash_entries= [KNL] |
978 | Set number of hash buckets for inode cache. | 981 | Set number of hash buckets for inode cache. |
@@ -1666,6 +1669,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1666 | debugging driver suspend/resume hooks). This may | 1669 | debugging driver suspend/resume hooks). This may |
1667 | not work reliably with all consoles, but is known | 1670 | not work reliably with all consoles, but is known |
1668 | to work with serial and VGA consoles. | 1671 | to work with serial and VGA consoles. |
1672 | To facilitate more flexible debugging, we also add | ||
1673 | console_suspend, a printk module parameter to control | ||
1674 | it. Users could use console_suspend (usually | ||
1675 | /sys/module/printk/parameters/console_suspend) to | ||
1676 | turn on/off it dynamically. | ||
1669 | 1677 | ||
1670 | noaliencache [MM, NUMA, SLAB] Disables the allocation of alien | 1678 | noaliencache [MM, NUMA, SLAB] Disables the allocation of alien |
1671 | caches in the slab allocator. Saves per-node memory, | 1679 | caches in the slab allocator. Saves per-node memory, |
diff --git a/Documentation/networking/ipvs-sysctl.txt b/Documentation/networking/ipvs-sysctl.txt index 4ccdbca03811..f2a2488f1bf3 100644 --- a/Documentation/networking/ipvs-sysctl.txt +++ b/Documentation/networking/ipvs-sysctl.txt | |||
@@ -15,6 +15,23 @@ amemthresh - INTEGER | |||
15 | enabled and the variable is automatically set to 2, otherwise | 15 | enabled and the variable is automatically set to 2, otherwise |
16 | the strategy is disabled and the variable is set to 1. | 16 | the strategy is disabled and the variable is set to 1. |
17 | 17 | ||
18 | conntrack - BOOLEAN | ||
19 | 0 - disabled (default) | ||
20 | not 0 - enabled | ||
21 | |||
22 | If set, maintain connection tracking entries for | ||
23 | connections handled by IPVS. | ||
24 | |||
25 | This should be enabled if connections handled by IPVS are to be | ||
26 | also handled by stateful firewall rules. That is, iptables rules | ||
27 | that make use of connection tracking. It is a performance | ||
28 | optimisation to disable this setting otherwise. | ||
29 | |||
30 | Connections handled by the IPVS FTP application module | ||
31 | will have connection tracking entries regardless of this setting. | ||
32 | |||
33 | Only available when IPVS is compiled with CONFIG_IP_VS_NFCT enabled. | ||
34 | |||
18 | cache_bypass - BOOLEAN | 35 | cache_bypass - BOOLEAN |
19 | 0 - disabled (default) | 36 | 0 - disabled (default) |
20 | not 0 - enabled | 37 | not 0 - enabled |
@@ -39,7 +56,7 @@ debug_level - INTEGER | |||
39 | 11 - IPVS packet handling (ip_vs_in/ip_vs_out) | 56 | 11 - IPVS packet handling (ip_vs_in/ip_vs_out) |
40 | 12 or more - packet traversal | 57 | 12 or more - packet traversal |
41 | 58 | ||
42 | Only available when IPVS is compiled with the CONFIG_IPVS_DEBUG | 59 | Only available when IPVS is compiled with CONFIG_IP_VS_DEBUG enabled. |
43 | 60 | ||
44 | Higher debugging levels include the messages for lower debugging | 61 | Higher debugging levels include the messages for lower debugging |
45 | levels, so setting debug level 2, includes level 0, 1 and 2 | 62 | levels, so setting debug level 2, includes level 0, 1 and 2 |
@@ -123,13 +140,11 @@ nat_icmp_send - BOOLEAN | |||
123 | secure_tcp - INTEGER | 140 | secure_tcp - INTEGER |
124 | 0 - disabled (default) | 141 | 0 - disabled (default) |
125 | 142 | ||
126 | The secure_tcp defense is to use a more complicated state | 143 | The secure_tcp defense is to use a more complicated TCP state |
127 | transition table and some possible short timeouts of each | 144 | transition table. For VS/NAT, it also delays entering the |
128 | state. In the VS/NAT, it delays the entering the ESTABLISHED | 145 | TCP ESTABLISHED state until the three way handshake is completed. |
129 | until the real server starts to send data and ACK packet | ||
130 | (after 3-way handshake). | ||
131 | 146 | ||
132 | The value definition is the same as that of drop_entry or | 147 | The value definition is the same as that of drop_entry and |
133 | drop_packet. | 148 | drop_packet. |
134 | 149 | ||
135 | sync_threshold - INTEGER | 150 | sync_threshold - INTEGER |
@@ -141,3 +156,36 @@ sync_threshold - INTEGER | |||
141 | synchronized, every time the number of its incoming packets | 156 | synchronized, every time the number of its incoming packets |
142 | modulus 50 equals the threshold. The range of the threshold is | 157 | modulus 50 equals the threshold. The range of the threshold is |
143 | from 0 to 49. | 158 | from 0 to 49. |
159 | |||
160 | snat_reroute - BOOLEAN | ||
161 | 0 - disabled | ||
162 | not 0 - enabled (default) | ||
163 | |||
164 | If enabled, recalculate the route of SNATed packets from | ||
165 | realservers so that they are routed as if they originate from the | ||
166 | director. Otherwise they are routed as if they are forwarded by the | ||
167 | director. | ||
168 | |||
169 | If policy routing is in effect then it is possible that the route | ||
170 | of a packet originating from a director is routed differently to a | ||
171 | packet being forwarded by the director. | ||
172 | |||
173 | If policy routing is not in effect then the recalculated route will | ||
174 | always be the same as the original route so it is an optimisation | ||
175 | to disable snat_reroute and avoid the recalculation. | ||
176 | |||
177 | sync_version - INTEGER | ||
178 | default 1 | ||
179 | |||
180 | The version of the synchronisation protocol used when sending | ||
181 | synchronisation messages. | ||
182 | |||
183 | 0 selects the original synchronisation protocol (version 0). This | ||
184 | should be used when sending synchronisation messages to a legacy | ||
185 | system that only understands the original synchronisation protocol. | ||
186 | |||
187 | 1 selects the current synchronisation protocol (version 1). This | ||
188 | should be used where possible. | ||
189 | |||
190 | Kernels with this sync_version entry are able to receive messages | ||
191 | of both version 1 and version 2 of the synchronisation protocol. | ||
diff --git a/Documentation/power/regulator/machine.txt b/Documentation/power/regulator/machine.txt index b42419b52e44..ce63af0a8e35 100644 --- a/Documentation/power/regulator/machine.txt +++ b/Documentation/power/regulator/machine.txt | |||
@@ -16,7 +16,7 @@ initialisation code by creating a struct regulator_consumer_supply for | |||
16 | each regulator. | 16 | each regulator. |
17 | 17 | ||
18 | struct regulator_consumer_supply { | 18 | struct regulator_consumer_supply { |
19 | struct device *dev; /* consumer */ | 19 | const char *dev_name; /* consumer dev_name() */ |
20 | const char *supply; /* consumer supply - e.g. "vcc" */ | 20 | const char *supply; /* consumer supply - e.g. "vcc" */ |
21 | }; | 21 | }; |
22 | 22 | ||
@@ -24,13 +24,13 @@ e.g. for the machine above | |||
24 | 24 | ||
25 | static struct regulator_consumer_supply regulator1_consumers[] = { | 25 | static struct regulator_consumer_supply regulator1_consumers[] = { |
26 | { | 26 | { |
27 | .dev = &platform_consumerB_device.dev, | 27 | .dev_name = "dev_name(consumer B)", |
28 | .supply = "Vcc", | 28 | .supply = "Vcc", |
29 | },}; | 29 | },}; |
30 | 30 | ||
31 | static struct regulator_consumer_supply regulator2_consumers[] = { | 31 | static struct regulator_consumer_supply regulator2_consumers[] = { |
32 | { | 32 | { |
33 | .dev = &platform_consumerA_device.dev, | 33 | .dev = "dev_name(consumer A"), |
34 | .supply = "Vcc", | 34 | .supply = "Vcc", |
35 | },}; | 35 | },}; |
36 | 36 | ||
@@ -43,6 +43,7 @@ to their supply regulator :- | |||
43 | 43 | ||
44 | static struct regulator_init_data regulator1_data = { | 44 | static struct regulator_init_data regulator1_data = { |
45 | .constraints = { | 45 | .constraints = { |
46 | .name = "Regulator-1", | ||
46 | .min_uV = 3300000, | 47 | .min_uV = 3300000, |
47 | .max_uV = 3300000, | 48 | .max_uV = 3300000, |
48 | .valid_modes_mask = REGULATOR_MODE_NORMAL, | 49 | .valid_modes_mask = REGULATOR_MODE_NORMAL, |
@@ -51,13 +52,19 @@ static struct regulator_init_data regulator1_data = { | |||
51 | .consumer_supplies = regulator1_consumers, | 52 | .consumer_supplies = regulator1_consumers, |
52 | }; | 53 | }; |
53 | 54 | ||
55 | The name field should be set to something that is usefully descriptive | ||
56 | for the board for configuration of supplies for other regulators and | ||
57 | for use in logging and other diagnostic output. Normally the name | ||
58 | used for the supply rail in the schematic is a good choice. If no | ||
59 | name is provided then the subsystem will choose one. | ||
60 | |||
54 | Regulator-1 supplies power to Regulator-2. This relationship must be registered | 61 | Regulator-1 supplies power to Regulator-2. This relationship must be registered |
55 | with the core so that Regulator-1 is also enabled when Consumer A enables its | 62 | with the core so that Regulator-1 is also enabled when Consumer A enables its |
56 | supply (Regulator-2). The supply regulator is set by the supply_regulator | 63 | supply (Regulator-2). The supply regulator is set by the supply_regulator |
57 | field below:- | 64 | field below and co:- |
58 | 65 | ||
59 | static struct regulator_init_data regulator2_data = { | 66 | static struct regulator_init_data regulator2_data = { |
60 | .supply_regulator = "regulator_name", | 67 | .supply_regulator = "Regulator-1", |
61 | .constraints = { | 68 | .constraints = { |
62 | .min_uV = 1800000, | 69 | .min_uV = 1800000, |
63 | .max_uV = 2000000, | 70 | .max_uV = 2000000, |
diff --git a/Documentation/rapidio/rapidio.txt b/Documentation/rapidio/rapidio.txt index be70ee15f8ca..c75694b35d08 100644 --- a/Documentation/rapidio/rapidio.txt +++ b/Documentation/rapidio/rapidio.txt | |||
@@ -144,7 +144,7 @@ and the default device ID in order to access the device on the active port. | |||
144 | 144 | ||
145 | After the host has completed enumeration of the entire network it releases | 145 | After the host has completed enumeration of the entire network it releases |
146 | devices by clearing device ID locks (calls rio_clear_locks()). For each endpoint | 146 | devices by clearing device ID locks (calls rio_clear_locks()). For each endpoint |
147 | in the system, it sets the Master Enable bit in the Port General Control CSR | 147 | in the system, it sets the Discovered bit in the Port General Control CSR |
148 | to indicate that enumeration is completed and agents are allowed to execute | 148 | to indicate that enumeration is completed and agents are allowed to execute |
149 | passive discovery of the network. | 149 | passive discovery of the network. |
150 | 150 | ||
diff --git a/Documentation/rapidio/tsi721.txt b/Documentation/rapidio/tsi721.txt new file mode 100644 index 000000000000..335f3c6087dc --- /dev/null +++ b/Documentation/rapidio/tsi721.txt | |||
@@ -0,0 +1,49 @@ | |||
1 | RapidIO subsystem mport driver for IDT Tsi721 PCI Express-to-SRIO bridge. | ||
2 | ========================================================================= | ||
3 | |||
4 | I. Overview | ||
5 | |||
6 | This driver implements all currently defined RapidIO mport callback functions. | ||
7 | It supports maintenance read and write operations, inbound and outbound RapidIO | ||
8 | doorbells, inbound maintenance port-writes and RapidIO messaging. | ||
9 | |||
10 | To generate SRIO maintenance transactions this driver uses one of Tsi721 DMA | ||
11 | channels. This mechanism provides access to larger range of hop counts and | ||
12 | destination IDs without need for changes in outbound window translation. | ||
13 | |||
14 | RapidIO messaging support uses dedicated messaging channels for each mailbox. | ||
15 | For inbound messages this driver uses destination ID matching to forward messages | ||
16 | into the corresponding message queue. Messaging callbacks are implemented to be | ||
17 | fully compatible with RIONET driver (Ethernet over RapidIO messaging services). | ||
18 | |||
19 | II. Known problems | ||
20 | |||
21 | None. | ||
22 | |||
23 | III. To do | ||
24 | |||
25 | Add DMA data transfers (non-messaging). | ||
26 | Add inbound region (SRIO-to-PCIe) mapping. | ||
27 | |||
28 | IV. Version History | ||
29 | |||
30 | 1.0.0 - Initial driver release. | ||
31 | |||
32 | V. License | ||
33 | ----------------------------------------------- | ||
34 | |||
35 | Copyright(c) 2011 Integrated Device Technology, Inc. All rights reserved. | ||
36 | |||
37 | This program is free software; you can redistribute it and/or modify it | ||
38 | under the terms of the GNU General Public License as published by the Free | ||
39 | Software Foundation; either version 2 of the License, or (at your option) | ||
40 | any later version. | ||
41 | |||
42 | This program is distributed in the hope that it will be useful, but WITHOUT | ||
43 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
44 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
45 | more details. | ||
46 | |||
47 | You should have received a copy of the GNU General Public License along with | ||
48 | this program; if not, write to the Free Software Foundation, Inc., | ||
49 | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt index 704e474a93df..1f2463671a1a 100644 --- a/Documentation/sysctl/kernel.txt +++ b/Documentation/sysctl/kernel.txt | |||
@@ -24,6 +24,7 @@ show up in /proc/sys/kernel: | |||
24 | - bootloader_type [ X86 only ] | 24 | - bootloader_type [ X86 only ] |
25 | - bootloader_version [ X86 only ] | 25 | - bootloader_version [ X86 only ] |
26 | - callhome [ S390 only ] | 26 | - callhome [ S390 only ] |
27 | - cap_last_cap | ||
27 | - core_pattern | 28 | - core_pattern |
28 | - core_pipe_limit | 29 | - core_pipe_limit |
29 | - core_uses_pid | 30 | - core_uses_pid |
@@ -155,6 +156,13 @@ on has a service contract with IBM. | |||
155 | 156 | ||
156 | ============================================================== | 157 | ============================================================== |
157 | 158 | ||
159 | cap_last_cap | ||
160 | |||
161 | Highest valid capability of the running kernel. Exports | ||
162 | CAP_LAST_CAP from the kernel. | ||
163 | |||
164 | ============================================================== | ||
165 | |||
158 | core_pattern: | 166 | core_pattern: |
159 | 167 | ||
160 | core_pattern is used to specify a core dumpfile pattern name. | 168 | core_pattern is used to specify a core dumpfile pattern name. |
diff --git a/Documentation/trace/postprocess/trace-vmscan-postprocess.pl b/Documentation/trace/postprocess/trace-vmscan-postprocess.pl index 12cecc83cd91..4a37c4759cd2 100644 --- a/Documentation/trace/postprocess/trace-vmscan-postprocess.pl +++ b/Documentation/trace/postprocess/trace-vmscan-postprocess.pl | |||
@@ -379,10 +379,10 @@ EVENT_PROCESS: | |||
379 | 379 | ||
380 | # To closer match vmstat scanning statistics, only count isolate_both | 380 | # To closer match vmstat scanning statistics, only count isolate_both |
381 | # and isolate_inactive as scanning. isolate_active is rotation | 381 | # and isolate_inactive as scanning. isolate_active is rotation |
382 | # isolate_inactive == 0 | 382 | # isolate_inactive == 1 |
383 | # isolate_active == 1 | 383 | # isolate_active == 2 |
384 | # isolate_both == 2 | 384 | # isolate_both == 3 |
385 | if ($isolate_mode != 1) { | 385 | if ($isolate_mode != 2) { |
386 | $perprocesspid{$process_pid}->{HIGH_NR_SCANNED} += $nr_scanned; | 386 | $perprocesspid{$process_pid}->{HIGH_NR_SCANNED} += $nr_scanned; |
387 | } | 387 | } |
388 | $perprocesspid{$process_pid}->{HIGH_NR_CONTIG_DIRTY} += $nr_contig_dirty; | 388 | $perprocesspid{$process_pid}->{HIGH_NR_CONTIG_DIRTY} += $nr_contig_dirty; |
diff --git a/Documentation/virtual/uml/UserModeLinux-HOWTO.txt b/Documentation/virtual/uml/UserModeLinux-HOWTO.txt index 5d0fc8bfcdb9..77dfecf4e2d6 100644 --- a/Documentation/virtual/uml/UserModeLinux-HOWTO.txt +++ b/Documentation/virtual/uml/UserModeLinux-HOWTO.txt | |||
@@ -134,13 +134,13 @@ | |||
134 | 134 | ||
135 | ______________________________________________________________________ | 135 | ______________________________________________________________________ |
136 | 136 | ||
137 | 11.. IInnttrroodduuccttiioonn | 137 | 1. Introduction |
138 | 138 | ||
139 | Welcome to User Mode Linux. It's going to be fun. | 139 | Welcome to User Mode Linux. It's going to be fun. |
140 | 140 | ||
141 | 141 | ||
142 | 142 | ||
143 | 11..11.. HHooww iiss UUsseerr MMooddee LLiinnuuxx DDiiffffeerreenntt?? | 143 | 1.1. How is User Mode Linux Different? |
144 | 144 | ||
145 | Normally, the Linux Kernel talks straight to your hardware (video | 145 | Normally, the Linux Kernel talks straight to your hardware (video |
146 | card, keyboard, hard drives, etc), and any programs which run ask the | 146 | card, keyboard, hard drives, etc), and any programs which run ask the |
@@ -181,7 +181,7 @@ | |||
181 | 181 | ||
182 | 182 | ||
183 | 183 | ||
184 | 11..22.. WWhhyy WWoouulldd II WWaanntt UUsseerr MMooddee LLiinnuuxx?? | 184 | 1.2. Why Would I Want User Mode Linux? |
185 | 185 | ||
186 | 186 | ||
187 | 1. If User Mode Linux crashes, your host kernel is still fine. | 187 | 1. If User Mode Linux crashes, your host kernel is still fine. |
@@ -206,12 +206,12 @@ | |||
206 | 206 | ||
207 | 207 | ||
208 | 208 | ||
209 | 22.. CCoommppiilliinngg tthhee kkeerrnneell aanndd mmoodduulleess | 209 | 2. Compiling the kernel and modules |
210 | 210 | ||
211 | 211 | ||
212 | 212 | ||
213 | 213 | ||
214 | 22..11.. CCoommppiilliinngg tthhee kkeerrnneell | 214 | 2.1. Compiling the kernel |
215 | 215 | ||
216 | 216 | ||
217 | Compiling the user mode kernel is just like compiling any other | 217 | Compiling the user mode kernel is just like compiling any other |
@@ -322,7 +322,7 @@ | |||
322 | bug fixes and enhancements that have gone into subsequent releases. | 322 | bug fixes and enhancements that have gone into subsequent releases. |
323 | 323 | ||
324 | 324 | ||
325 | 22..22.. CCoommppiilliinngg aanndd iinnssttaalllliinngg kkeerrnneell mmoodduulleess | 325 | 2.2. Compiling and installing kernel modules |
326 | 326 | ||
327 | UML modules are built in the same way as the native kernel (with the | 327 | UML modules are built in the same way as the native kernel (with the |
328 | exception of the 'ARCH=um' that you always need for UML): | 328 | exception of the 'ARCH=um' that you always need for UML): |
@@ -386,19 +386,19 @@ | |||
386 | 386 | ||
387 | 387 | ||
388 | 388 | ||
389 | 22..33.. CCoommppiilliinngg aanndd iinnssttaalllliinngg uummll__uuttiilliittiieess | 389 | 2.3. Compiling and installing uml_utilities |
390 | 390 | ||
391 | Many features of the UML kernel require a user-space helper program, | 391 | Many features of the UML kernel require a user-space helper program, |
392 | so a uml_utilities package is distributed separately from the kernel | 392 | so a uml_utilities package is distributed separately from the kernel |
393 | patch which provides these helpers. Included within this is: | 393 | patch which provides these helpers. Included within this is: |
394 | 394 | ||
395 | +o port-helper - Used by consoles which connect to xterms or ports | 395 | o port-helper - Used by consoles which connect to xterms or ports |
396 | 396 | ||
397 | +o tunctl - Configuration tool to create and delete tap devices | 397 | o tunctl - Configuration tool to create and delete tap devices |
398 | 398 | ||
399 | +o uml_net - Setuid binary for automatic tap device configuration | 399 | o uml_net - Setuid binary for automatic tap device configuration |
400 | 400 | ||
401 | +o uml_switch - User-space virtual switch required for daemon | 401 | o uml_switch - User-space virtual switch required for daemon |
402 | transport | 402 | transport |
403 | 403 | ||
404 | The uml_utilities tree is compiled with: | 404 | The uml_utilities tree is compiled with: |
@@ -423,11 +423,11 @@ | |||
423 | 423 | ||
424 | 424 | ||
425 | 425 | ||
426 | 33.. RRuunnnniinngg UUMMLL aanndd llooggggiinngg iinn | 426 | 3. Running UML and logging in |
427 | 427 | ||
428 | 428 | ||
429 | 429 | ||
430 | 33..11.. RRuunnnniinngg UUMMLL | 430 | 3.1. Running UML |
431 | 431 | ||
432 | It runs on 2.2.15 or later, and all 2.4 kernels. | 432 | It runs on 2.2.15 or later, and all 2.4 kernels. |
433 | 433 | ||
@@ -454,7 +454,7 @@ | |||
454 | 454 | ||
455 | 455 | ||
456 | 456 | ||
457 | 33..22.. LLooggggiinngg iinn | 457 | 3.2. Logging in |
458 | 458 | ||
459 | 459 | ||
460 | 460 | ||
@@ -468,7 +468,7 @@ | |||
468 | 468 | ||
469 | There are a couple of other ways to log in: | 469 | There are a couple of other ways to log in: |
470 | 470 | ||
471 | +o On a virtual console | 471 | o On a virtual console |
472 | 472 | ||
473 | 473 | ||
474 | 474 | ||
@@ -480,7 +480,7 @@ | |||
480 | 480 | ||
481 | 481 | ||
482 | 482 | ||
483 | +o Over the serial line | 483 | o Over the serial line |
484 | 484 | ||
485 | 485 | ||
486 | In the boot output, find a line that looks like: | 486 | In the boot output, find a line that looks like: |
@@ -503,7 +503,7 @@ | |||
503 | 503 | ||
504 | 504 | ||
505 | 505 | ||
506 | +o Over the net | 506 | o Over the net |
507 | 507 | ||
508 | 508 | ||
509 | If the network is running, then you can telnet to the virtual | 509 | If the network is running, then you can telnet to the virtual |
@@ -514,13 +514,13 @@ | |||
514 | down and the process will exit. | 514 | down and the process will exit. |
515 | 515 | ||
516 | 516 | ||
517 | 33..33.. EExxaammpplleess | 517 | 3.3. Examples |
518 | 518 | ||
519 | Here are some examples of UML in action: | 519 | Here are some examples of UML in action: |
520 | 520 | ||
521 | +o A login session <http://user-mode-linux.sourceforge.net/login.html> | 521 | o A login session <http://user-mode-linux.sourceforge.net/login.html> |
522 | 522 | ||
523 | +o A virtual network <http://user-mode-linux.sourceforge.net/net.html> | 523 | o A virtual network <http://user-mode-linux.sourceforge.net/net.html> |
524 | 524 | ||
525 | 525 | ||
526 | 526 | ||
@@ -528,12 +528,12 @@ | |||
528 | 528 | ||
529 | 529 | ||
530 | 530 | ||
531 | 44.. UUMMLL oonn 22GG//22GG hhoossttss | 531 | 4. UML on 2G/2G hosts |
532 | 532 | ||
533 | 533 | ||
534 | 534 | ||
535 | 535 | ||
536 | 44..11.. IInnttrroodduuccttiioonn | 536 | 4.1. Introduction |
537 | 537 | ||
538 | 538 | ||
539 | Most Linux machines are configured so that the kernel occupies the | 539 | Most Linux machines are configured so that the kernel occupies the |
@@ -546,7 +546,7 @@ | |||
546 | 546 | ||
547 | 547 | ||
548 | 548 | ||
549 | 44..22.. TThhee pprroobblleemm | 549 | 4.2. The problem |
550 | 550 | ||
551 | 551 | ||
552 | The prebuilt UML binaries on this site will not run on 2G/2G hosts | 552 | The prebuilt UML binaries on this site will not run on 2G/2G hosts |
@@ -558,7 +558,7 @@ | |||
558 | 558 | ||
559 | 559 | ||
560 | 560 | ||
561 | 44..33.. TThhee ssoolluuttiioonn | 561 | 4.3. The solution |
562 | 562 | ||
563 | 563 | ||
564 | The fix for this is to rebuild UML from source after enabling | 564 | The fix for this is to rebuild UML from source after enabling |
@@ -576,7 +576,7 @@ | |||
576 | 576 | ||
577 | 577 | ||
578 | 578 | ||
579 | 55.. SSeettttiinngg uupp sseerriiaall lliinneess aanndd ccoonnssoolleess | 579 | 5. Setting up serial lines and consoles |
580 | 580 | ||
581 | 581 | ||
582 | It is possible to attach UML serial lines and consoles to many types | 582 | It is possible to attach UML serial lines and consoles to many types |
@@ -586,12 +586,12 @@ | |||
586 | You can attach them to host ptys, ttys, file descriptors, and ports. | 586 | You can attach them to host ptys, ttys, file descriptors, and ports. |
587 | This allows you to do things like | 587 | This allows you to do things like |
588 | 588 | ||
589 | +o have a UML console appear on an unused host console, | 589 | o have a UML console appear on an unused host console, |
590 | 590 | ||
591 | +o hook two virtual machines together by having one attach to a pty | 591 | o hook two virtual machines together by having one attach to a pty |
592 | and having the other attach to the corresponding tty | 592 | and having the other attach to the corresponding tty |
593 | 593 | ||
594 | +o make a virtual machine accessible from the net by attaching a | 594 | o make a virtual machine accessible from the net by attaching a |
595 | console to a port on the host. | 595 | console to a port on the host. |
596 | 596 | ||
597 | 597 | ||
@@ -599,7 +599,7 @@ | |||
599 | 599 | ||
600 | 600 | ||
601 | 601 | ||
602 | 55..11.. SSppeecciiffyyiinngg tthhee ddeevviiccee | 602 | 5.1. Specifying the device |
603 | 603 | ||
604 | Devices are specified with "con" or "ssl" (console or serial line, | 604 | Devices are specified with "con" or "ssl" (console or serial line, |
605 | respectively), optionally with a device number if you are talking | 605 | respectively), optionally with a device number if you are talking |
@@ -626,13 +626,13 @@ | |||
626 | 626 | ||
627 | 627 | ||
628 | 628 | ||
629 | 55..22.. SSppeecciiffyyiinngg tthhee cchhaannnneell | 629 | 5.2. Specifying the channel |
630 | 630 | ||
631 | There are a number of different types of channels to attach a UML | 631 | There are a number of different types of channels to attach a UML |
632 | device to, each with a different way of specifying exactly what to | 632 | device to, each with a different way of specifying exactly what to |
633 | attach to. | 633 | attach to. |
634 | 634 | ||
635 | +o pseudo-terminals - device=pty pts terminals - device=pts | 635 | o pseudo-terminals - device=pty pts terminals - device=pts |
636 | 636 | ||
637 | 637 | ||
638 | This will cause UML to allocate a free host pseudo-terminal for the | 638 | This will cause UML to allocate a free host pseudo-terminal for the |
@@ -640,20 +640,20 @@ | |||
640 | log. You access it by attaching a terminal program to the | 640 | log. You access it by attaching a terminal program to the |
641 | corresponding tty: | 641 | corresponding tty: |
642 | 642 | ||
643 | +o screen /dev/pts/n | 643 | o screen /dev/pts/n |
644 | 644 | ||
645 | +o screen /dev/ttyxx | 645 | o screen /dev/ttyxx |
646 | 646 | ||
647 | +o minicom -o -p /dev/ttyxx - minicom seems not able to handle pts | 647 | o minicom -o -p /dev/ttyxx - minicom seems not able to handle pts |
648 | devices | 648 | devices |
649 | 649 | ||
650 | +o kermit - start it up, 'open' the device, then 'connect' | 650 | o kermit - start it up, 'open' the device, then 'connect' |
651 | 651 | ||
652 | 652 | ||
653 | 653 | ||
654 | 654 | ||
655 | 655 | ||
656 | +o terminals - device=tty:tty device file | 656 | o terminals - device=tty:tty device file |
657 | 657 | ||
658 | 658 | ||
659 | This will make UML attach the device to the specified tty (i.e | 659 | This will make UML attach the device to the specified tty (i.e |
@@ -672,7 +672,7 @@ | |||
672 | 672 | ||
673 | 673 | ||
674 | 674 | ||
675 | +o xterms - device=xterm | 675 | o xterms - device=xterm |
676 | 676 | ||
677 | 677 | ||
678 | UML will run an xterm and the device will be attached to it. | 678 | UML will run an xterm and the device will be attached to it. |
@@ -681,7 +681,7 @@ | |||
681 | 681 | ||
682 | 682 | ||
683 | 683 | ||
684 | +o Port - device=port:port number | 684 | o Port - device=port:port number |
685 | 685 | ||
686 | 686 | ||
687 | This will attach the UML devices to the specified host port. | 687 | This will attach the UML devices to the specified host port. |
@@ -725,7 +725,7 @@ | |||
725 | 725 | ||
726 | 726 | ||
727 | 727 | ||
728 | +o already-existing file descriptors - device=file descriptor | 728 | o already-existing file descriptors - device=file descriptor |
729 | 729 | ||
730 | 730 | ||
731 | If you set up a file descriptor on the UML command line, you can | 731 | If you set up a file descriptor on the UML command line, you can |
@@ -743,7 +743,7 @@ | |||
743 | 743 | ||
744 | 744 | ||
745 | 745 | ||
746 | +o Nothing - device=null | 746 | o Nothing - device=null |
747 | 747 | ||
748 | 748 | ||
749 | This allows the device to be opened, in contrast to 'none', but | 749 | This allows the device to be opened, in contrast to 'none', but |
@@ -754,7 +754,7 @@ | |||
754 | 754 | ||
755 | 755 | ||
756 | 756 | ||
757 | +o None - device=none | 757 | o None - device=none |
758 | 758 | ||
759 | 759 | ||
760 | This causes the device to disappear. | 760 | This causes the device to disappear. |
@@ -770,7 +770,7 @@ | |||
770 | 770 | ||
771 | 771 | ||
772 | 772 | ||
773 | will cause serial line 3 to accept input on the host's /dev/tty3 and | 773 | will cause serial line 3 to accept input on the host's /dev/tty2 and |
774 | display output on an xterm. That's a silly example - the most common | 774 | display output on an xterm. That's a silly example - the most common |
775 | use of this syntax is to reattach the main console to stdin and stdout | 775 | use of this syntax is to reattach the main console to stdin and stdout |
776 | as shown above. | 776 | as shown above. |
@@ -785,7 +785,7 @@ | |||
785 | 785 | ||
786 | 786 | ||
787 | 787 | ||
788 | 55..33.. EExxaammpplleess | 788 | 5.3. Examples |
789 | 789 | ||
790 | There are a number of interesting things you can do with this | 790 | There are a number of interesting things you can do with this |
791 | capability. | 791 | capability. |
@@ -838,7 +838,7 @@ | |||
838 | prompt of the other virtual machine. | 838 | prompt of the other virtual machine. |
839 | 839 | ||
840 | 840 | ||
841 | 66.. SSeettttiinngg uupp tthhee nneettwwoorrkk | 841 | 6. Setting up the network |
842 | 842 | ||
843 | 843 | ||
844 | 844 | ||
@@ -858,19 +858,19 @@ | |||
858 | There are currently five transport types available for a UML virtual | 858 | There are currently five transport types available for a UML virtual |
859 | machine to exchange packets with other hosts: | 859 | machine to exchange packets with other hosts: |
860 | 860 | ||
861 | +o ethertap | 861 | o ethertap |
862 | 862 | ||
863 | +o TUN/TAP | 863 | o TUN/TAP |
864 | 864 | ||
865 | +o Multicast | 865 | o Multicast |
866 | 866 | ||
867 | +o a switch daemon | 867 | o a switch daemon |
868 | 868 | ||
869 | +o slip | 869 | o slip |
870 | 870 | ||
871 | +o slirp | 871 | o slirp |
872 | 872 | ||
873 | +o pcap | 873 | o pcap |
874 | 874 | ||
875 | The TUN/TAP, ethertap, slip, and slirp transports allow a UML | 875 | The TUN/TAP, ethertap, slip, and slirp transports allow a UML |
876 | instance to exchange packets with the host. They may be directed | 876 | instance to exchange packets with the host. They may be directed |
@@ -893,28 +893,28 @@ | |||
893 | With so many host transports, which one should you use? Here's when | 893 | With so many host transports, which one should you use? Here's when |
894 | you should use each one: | 894 | you should use each one: |
895 | 895 | ||
896 | +o ethertap - if you want access to the host networking and it is | 896 | o ethertap - if you want access to the host networking and it is |
897 | running 2.2 | 897 | running 2.2 |
898 | 898 | ||
899 | +o TUN/TAP - if you want access to the host networking and it is | 899 | o TUN/TAP - if you want access to the host networking and it is |
900 | running 2.4. Also, the TUN/TAP transport is able to use a | 900 | running 2.4. Also, the TUN/TAP transport is able to use a |
901 | preconfigured device, allowing it to avoid using the setuid uml_net | 901 | preconfigured device, allowing it to avoid using the setuid uml_net |
902 | helper, which is a security advantage. | 902 | helper, which is a security advantage. |
903 | 903 | ||
904 | +o Multicast - if you want a purely virtual network and you don't want | 904 | o Multicast - if you want a purely virtual network and you don't want |
905 | to set up anything but the UML | 905 | to set up anything but the UML |
906 | 906 | ||
907 | +o a switch daemon - if you want a purely virtual network and you | 907 | o a switch daemon - if you want a purely virtual network and you |
908 | don't mind running the daemon in order to get somewhat better | 908 | don't mind running the daemon in order to get somewhat better |
909 | performance | 909 | performance |
910 | 910 | ||
911 | +o slip - there is no particular reason to run the slip backend unless | 911 | o slip - there is no particular reason to run the slip backend unless |
912 | ethertap and TUN/TAP are just not available for some reason | 912 | ethertap and TUN/TAP are just not available for some reason |
913 | 913 | ||
914 | +o slirp - if you don't have root access on the host to setup | 914 | o slirp - if you don't have root access on the host to setup |
915 | networking, or if you don't want to allocate an IP to your UML | 915 | networking, or if you don't want to allocate an IP to your UML |
916 | 916 | ||
917 | +o pcap - not much use for actual network connectivity, but great for | 917 | o pcap - not much use for actual network connectivity, but great for |
918 | monitoring traffic on the host | 918 | monitoring traffic on the host |
919 | 919 | ||
920 | Ethertap is available on 2.4 and works fine. TUN/TAP is preferred | 920 | Ethertap is available on 2.4 and works fine. TUN/TAP is preferred |
@@ -926,7 +926,7 @@ | |||
926 | exploit the helper's root privileges. | 926 | exploit the helper's root privileges. |
927 | 927 | ||
928 | 928 | ||
929 | 66..11.. GGeenneerraall sseettuupp | 929 | 6.1. General setup |
930 | 930 | ||
931 | First, you must have the virtual network enabled in your UML. If are | 931 | First, you must have the virtual network enabled in your UML. If are |
932 | running a prebuilt kernel from this site, everything is already | 932 | running a prebuilt kernel from this site, everything is already |
@@ -995,7 +995,7 @@ | |||
995 | 995 | ||
996 | 996 | ||
997 | 997 | ||
998 | 66..22.. UUsseerrssppaaccee ddaaeemmoonnss | 998 | 6.2. Userspace daemons |
999 | 999 | ||
1000 | You will likely need the setuid helper, or the switch daemon, or both. | 1000 | You will likely need the setuid helper, or the switch daemon, or both. |
1001 | They are both installed with the RPM and deb, so if you've installed | 1001 | They are both installed with the RPM and deb, so if you've installed |
@@ -1011,7 +1011,7 @@ | |||
1011 | 1011 | ||
1012 | 1012 | ||
1013 | 1013 | ||
1014 | 66..33.. SSppeecciiffyyiinngg eetthheerrnneett aaddddrreesssseess | 1014 | 6.3. Specifying ethernet addresses |
1015 | 1015 | ||
1016 | Below, you will see that the TUN/TAP, ethertap, and daemon interfaces | 1016 | Below, you will see that the TUN/TAP, ethertap, and daemon interfaces |
1017 | allow you to specify hardware addresses for the virtual ethernet | 1017 | allow you to specify hardware addresses for the virtual ethernet |
@@ -1023,11 +1023,11 @@ | |||
1023 | sufficient to guarantee a unique hardware address for the device. A | 1023 | sufficient to guarantee a unique hardware address for the device. A |
1024 | couple of exceptions are: | 1024 | couple of exceptions are: |
1025 | 1025 | ||
1026 | +o Another set of virtual ethernet devices are on the same network and | 1026 | o Another set of virtual ethernet devices are on the same network and |
1027 | they are assigned hardware addresses using a different scheme which | 1027 | they are assigned hardware addresses using a different scheme which |
1028 | may conflict with the UML IP address-based scheme | 1028 | may conflict with the UML IP address-based scheme |
1029 | 1029 | ||
1030 | +o You aren't going to use the device for IP networking, so you don't | 1030 | o You aren't going to use the device for IP networking, so you don't |
1031 | assign the device an IP address | 1031 | assign the device an IP address |
1032 | 1032 | ||
1033 | If you let the driver provide the hardware address, you should make | 1033 | If you let the driver provide the hardware address, you should make |
@@ -1049,7 +1049,7 @@ | |||
1049 | 1049 | ||
1050 | 1050 | ||
1051 | 1051 | ||
1052 | 66..44.. UUMMLL iinntteerrffaaccee sseettuupp | 1052 | 6.4. UML interface setup |
1053 | 1053 | ||
1054 | Once the network devices have been described on the command line, you | 1054 | Once the network devices have been described on the command line, you |
1055 | should boot UML and log in. | 1055 | should boot UML and log in. |
@@ -1131,7 +1131,7 @@ | |||
1131 | 1131 | ||
1132 | 1132 | ||
1133 | 1133 | ||
1134 | 66..55.. MMuullttiiccaasstt | 1134 | 6.5. Multicast |
1135 | 1135 | ||
1136 | The simplest way to set up a virtual network between multiple UMLs is | 1136 | The simplest way to set up a virtual network between multiple UMLs is |
1137 | to use the mcast transport. This was written by Harald Welte and is | 1137 | to use the mcast transport. This was written by Harald Welte and is |
@@ -1194,7 +1194,7 @@ | |||
1194 | 1194 | ||
1195 | 1195 | ||
1196 | 1196 | ||
1197 | 66..66.. TTUUNN//TTAAPP wwiitthh tthhee uummll__nneett hheellppeerr | 1197 | 6.6. TUN/TAP with the uml_net helper |
1198 | 1198 | ||
1199 | TUN/TAP is the preferred mechanism on 2.4 to exchange packets with the | 1199 | TUN/TAP is the preferred mechanism on 2.4 to exchange packets with the |
1200 | host. The TUN/TAP backend has been in UML since 2.4.9-3um. | 1200 | host. The TUN/TAP backend has been in UML since 2.4.9-3um. |
@@ -1247,10 +1247,10 @@ | |||
1247 | There are a couple potential problems with running the TUN/TAP | 1247 | There are a couple potential problems with running the TUN/TAP |
1248 | transport on a 2.4 host kernel | 1248 | transport on a 2.4 host kernel |
1249 | 1249 | ||
1250 | +o TUN/TAP seems not to work on 2.4.3 and earlier. Upgrade the host | 1250 | o TUN/TAP seems not to work on 2.4.3 and earlier. Upgrade the host |
1251 | kernel or use the ethertap transport. | 1251 | kernel or use the ethertap transport. |
1252 | 1252 | ||
1253 | +o With an upgraded kernel, TUN/TAP may fail with | 1253 | o With an upgraded kernel, TUN/TAP may fail with |
1254 | 1254 | ||
1255 | 1255 | ||
1256 | File descriptor in bad state | 1256 | File descriptor in bad state |
@@ -1269,7 +1269,7 @@ | |||
1269 | 1269 | ||
1270 | 1270 | ||
1271 | 1271 | ||
1272 | 66..77.. TTUUNN//TTAAPP wwiitthh aa pprreeccoonnffiigguurreedd ttaapp ddeevviiccee | 1272 | 6.7. TUN/TAP with a preconfigured tap device |
1273 | 1273 | ||
1274 | If you prefer not to have UML use uml_net (which is somewhat | 1274 | If you prefer not to have UML use uml_net (which is somewhat |
1275 | insecure), with UML 2.4.17-11, you can set up a TUN/TAP device | 1275 | insecure), with UML 2.4.17-11, you can set up a TUN/TAP device |
@@ -1277,7 +1277,7 @@ | |||
1277 | there is no need for root assistance. Setting up the device is done | 1277 | there is no need for root assistance. Setting up the device is done |
1278 | as follows: | 1278 | as follows: |
1279 | 1279 | ||
1280 | +o Create the device with tunctl (available from the UML utilities | 1280 | o Create the device with tunctl (available from the UML utilities |
1281 | tarball) | 1281 | tarball) |
1282 | 1282 | ||
1283 | 1283 | ||
@@ -1291,7 +1291,7 @@ | |||
1291 | where uid is the user id or username that UML will be run as. This | 1291 | where uid is the user id or username that UML will be run as. This |
1292 | will tell you what device was created. | 1292 | will tell you what device was created. |
1293 | 1293 | ||
1294 | +o Configure the device IP (change IP addresses and device name to | 1294 | o Configure the device IP (change IP addresses and device name to |
1295 | suit) | 1295 | suit) |
1296 | 1296 | ||
1297 | 1297 | ||
@@ -1303,7 +1303,7 @@ | |||
1303 | 1303 | ||
1304 | 1304 | ||
1305 | 1305 | ||
1306 | +o Set up routing and arping if desired - this is my recipe, there are | 1306 | o Set up routing and arping if desired - this is my recipe, there are |
1307 | other ways of doing the same thing | 1307 | other ways of doing the same thing |
1308 | 1308 | ||
1309 | 1309 | ||
@@ -1338,7 +1338,7 @@ | |||
1338 | utility which reads the information from a config file and sets up | 1338 | utility which reads the information from a config file and sets up |
1339 | devices at boot time. | 1339 | devices at boot time. |
1340 | 1340 | ||
1341 | +o Rather than using up two IPs and ARPing for one of them, you can | 1341 | o Rather than using up two IPs and ARPing for one of them, you can |
1342 | also provide direct access to your LAN by the UML by using a | 1342 | also provide direct access to your LAN by the UML by using a |
1343 | bridge. | 1343 | bridge. |
1344 | 1344 | ||
@@ -1417,7 +1417,7 @@ | |||
1417 | Note that 'br0' should be setup using ifconfig with the existing IP | 1417 | Note that 'br0' should be setup using ifconfig with the existing IP |
1418 | address of eth0, as eth0 no longer has its own IP. | 1418 | address of eth0, as eth0 no longer has its own IP. |
1419 | 1419 | ||
1420 | +o | 1420 | o |
1421 | 1421 | ||
1422 | 1422 | ||
1423 | Also, the /dev/net/tun device must be writable by the user running | 1423 | Also, the /dev/net/tun device must be writable by the user running |
@@ -1438,11 +1438,11 @@ | |||
1438 | devices and chgrp /dev/net/tun to that group with mode 664 or 660. | 1438 | devices and chgrp /dev/net/tun to that group with mode 664 or 660. |
1439 | 1439 | ||
1440 | 1440 | ||
1441 | +o Once the device is set up, run UML with 'eth0=tuntap,device name' | 1441 | o Once the device is set up, run UML with 'eth0=tuntap,device name' |
1442 | (i.e. 'eth0=tuntap,tap0') on the command line (or do it with the | 1442 | (i.e. 'eth0=tuntap,tap0') on the command line (or do it with the |
1443 | mconsole config command). | 1443 | mconsole config command). |
1444 | 1444 | ||
1445 | +o Bring the eth device up in UML and you're in business. | 1445 | o Bring the eth device up in UML and you're in business. |
1446 | 1446 | ||
1447 | If you don't want that tap device any more, you can make it non- | 1447 | If you don't want that tap device any more, you can make it non- |
1448 | persistent with | 1448 | persistent with |
@@ -1465,7 +1465,7 @@ | |||
1465 | 1465 | ||
1466 | 1466 | ||
1467 | 1467 | ||
1468 | 66..88.. EEtthheerrttaapp | 1468 | 6.8. Ethertap |
1469 | 1469 | ||
1470 | Ethertap is the general mechanism on 2.2 for userspace processes to | 1470 | Ethertap is the general mechanism on 2.2 for userspace processes to |
1471 | exchange packets with the kernel. | 1471 | exchange packets with the kernel. |
@@ -1561,9 +1561,9 @@ | |||
1561 | 1561 | ||
1562 | 1562 | ||
1563 | 1563 | ||
1564 | 66..99.. TThhee sswwiittcchh ddaaeemmoonn | 1564 | 6.9. The switch daemon |
1565 | 1565 | ||
1566 | NNoottee: This is the daemon formerly known as uml_router, but which was | 1566 | Note: This is the daemon formerly known as uml_router, but which was |
1567 | renamed so the network weenies of the world would stop growling at me. | 1567 | renamed so the network weenies of the world would stop growling at me. |
1568 | 1568 | ||
1569 | 1569 | ||
@@ -1649,7 +1649,7 @@ | |||
1649 | 1649 | ||
1650 | 1650 | ||
1651 | 1651 | ||
1652 | 66..1100.. SSlliipp | 1652 | 6.10. Slip |
1653 | 1653 | ||
1654 | Slip is another, less general, mechanism for a process to communicate | 1654 | Slip is another, less general, mechanism for a process to communicate |
1655 | with the host networking. In contrast to the ethertap interface, | 1655 | with the host networking. In contrast to the ethertap interface, |
@@ -1681,7 +1681,7 @@ | |||
1681 | 1681 | ||
1682 | 1682 | ||
1683 | 1683 | ||
1684 | 66..1111.. SSlliirrpp | 1684 | 6.11. Slirp |
1685 | 1685 | ||
1686 | slirp uses an external program, usually /usr/bin/slirp, to provide IP | 1686 | slirp uses an external program, usually /usr/bin/slirp, to provide IP |
1687 | only networking connectivity through the host. This is similar to IP | 1687 | only networking connectivity through the host. This is similar to IP |
@@ -1737,7 +1737,7 @@ | |||
1737 | 1737 | ||
1738 | 1738 | ||
1739 | 1739 | ||
1740 | 66..1122.. ppccaapp | 1740 | 6.12. pcap |
1741 | 1741 | ||
1742 | The pcap transport is attached to a UML ethernet device on the command | 1742 | The pcap transport is attached to a UML ethernet device on the command |
1743 | line or with uml_mconsole with the following syntax: | 1743 | line or with uml_mconsole with the following syntax: |
@@ -1777,7 +1777,7 @@ | |||
1777 | 1777 | ||
1778 | 1778 | ||
1779 | 1779 | ||
1780 | 66..1133.. SSeettttiinngg uupp tthhee hhoosstt yyoouurrsseellff | 1780 | 6.13. Setting up the host yourself |
1781 | 1781 | ||
1782 | If you don't specify an address for the host side of the ethertap or | 1782 | If you don't specify an address for the host side of the ethertap or |
1783 | slip device, UML won't do any setup on the host. So this is what is | 1783 | slip device, UML won't do any setup on the host. So this is what is |
@@ -1785,7 +1785,7 @@ | |||
1785 | 192.168.0.251 and a UML-side IP of 192.168.0.250 - adjust to suit your | 1785 | 192.168.0.251 and a UML-side IP of 192.168.0.250 - adjust to suit your |
1786 | own network): | 1786 | own network): |
1787 | 1787 | ||
1788 | +o The device needs to be configured with its IP address. Tap devices | 1788 | o The device needs to be configured with its IP address. Tap devices |
1789 | are also configured with an mtu of 1484. Slip devices are | 1789 | are also configured with an mtu of 1484. Slip devices are |
1790 | configured with a point-to-point address pointing at the UML ip | 1790 | configured with a point-to-point address pointing at the UML ip |
1791 | address. | 1791 | address. |
@@ -1805,7 +1805,7 @@ | |||
1805 | 1805 | ||
1806 | 1806 | ||
1807 | 1807 | ||
1808 | +o If a tap device is being set up, a route is set to the UML IP. | 1808 | o If a tap device is being set up, a route is set to the UML IP. |
1809 | 1809 | ||
1810 | 1810 | ||
1811 | UML# route add -host 192.168.0.250 gw 192.168.0.251 | 1811 | UML# route add -host 192.168.0.250 gw 192.168.0.251 |
@@ -1814,7 +1814,7 @@ | |||
1814 | 1814 | ||
1815 | 1815 | ||
1816 | 1816 | ||
1817 | +o To allow other hosts on your network to see the virtual machine, | 1817 | o To allow other hosts on your network to see the virtual machine, |
1818 | proxy arp is set up for it. | 1818 | proxy arp is set up for it. |
1819 | 1819 | ||
1820 | 1820 | ||
@@ -1824,7 +1824,7 @@ | |||
1824 | 1824 | ||
1825 | 1825 | ||
1826 | 1826 | ||
1827 | +o Finally, the host is set up to route packets. | 1827 | o Finally, the host is set up to route packets. |
1828 | 1828 | ||
1829 | 1829 | ||
1830 | host# echo 1 > /proc/sys/net/ipv4/ip_forward | 1830 | host# echo 1 > /proc/sys/net/ipv4/ip_forward |
@@ -1838,12 +1838,12 @@ | |||
1838 | 1838 | ||
1839 | 1839 | ||
1840 | 1840 | ||
1841 | 77.. SShhaarriinngg FFiilleessyysstteemmss bbeettwweeeenn VViirrttuuaall MMaacchhiinneess | 1841 | 7. Sharing Filesystems between Virtual Machines |
1842 | 1842 | ||
1843 | 1843 | ||
1844 | 1844 | ||
1845 | 1845 | ||
1846 | 77..11.. AA wwaarrnniinngg | 1846 | 7.1. A warning |
1847 | 1847 | ||
1848 | Don't attempt to share filesystems simply by booting two UMLs from the | 1848 | Don't attempt to share filesystems simply by booting two UMLs from the |
1849 | same file. That's the same thing as booting two physical machines | 1849 | same file. That's the same thing as booting two physical machines |
@@ -1851,7 +1851,7 @@ | |||
1851 | 1851 | ||
1852 | 1852 | ||
1853 | 1853 | ||
1854 | 77..22.. UUssiinngg llaayyeerreedd bblloocckk ddeevviicceess | 1854 | 7.2. Using layered block devices |
1855 | 1855 | ||
1856 | The way to share a filesystem between two virtual machines is to use | 1856 | The way to share a filesystem between two virtual machines is to use |
1857 | the copy-on-write (COW) layering capability of the ubd block driver. | 1857 | the copy-on-write (COW) layering capability of the ubd block driver. |
@@ -1896,7 +1896,7 @@ | |||
1896 | 1896 | ||
1897 | 1897 | ||
1898 | 1898 | ||
1899 | 77..33.. NNoottee!! | 1899 | 7.3. Note! |
1900 | 1900 | ||
1901 | When checking the size of the COW file in order to see the gobs of | 1901 | When checking the size of the COW file in order to see the gobs of |
1902 | space that you're saving, make sure you use 'ls -ls' to see the actual | 1902 | space that you're saving, make sure you use 'ls -ls' to see the actual |
@@ -1926,7 +1926,7 @@ | |||
1926 | 1926 | ||
1927 | 1927 | ||
1928 | 1928 | ||
1929 | 77..44.. AAnnootthheerr wwaarrnniinngg | 1929 | 7.4. Another warning |
1930 | 1930 | ||
1931 | Once a filesystem is being used as a readonly backing file for a COW | 1931 | Once a filesystem is being used as a readonly backing file for a COW |
1932 | file, do not boot directly from it or modify it in any way. Doing so | 1932 | file, do not boot directly from it or modify it in any way. Doing so |
@@ -1952,7 +1952,7 @@ | |||
1952 | 1952 | ||
1953 | 1953 | ||
1954 | 1954 | ||
1955 | 77..55.. uummll__mmoooo :: MMeerrggiinngg aa CCOOWW ffiillee wwiitthh iittss bbaacckkiinngg ffiillee | 1955 | 7.5. uml_moo : Merging a COW file with its backing file |
1956 | 1956 | ||
1957 | Depending on how you use UML and COW devices, it may be advisable to | 1957 | Depending on how you use UML and COW devices, it may be advisable to |
1958 | merge the changes in the COW file into the backing file every once in | 1958 | merge the changes in the COW file into the backing file every once in |
@@ -2001,7 +2001,7 @@ | |||
2001 | 2001 | ||
2002 | 2002 | ||
2003 | 2003 | ||
2004 | 88.. CCrreeaattiinngg ffiilleessyysstteemmss | 2004 | 8. Creating filesystems |
2005 | 2005 | ||
2006 | 2006 | ||
2007 | You may want to create and mount new UML filesystems, either because | 2007 | You may want to create and mount new UML filesystems, either because |
@@ -2015,7 +2015,7 @@ | |||
2015 | should be easy to translate to the filesystem of your choice. | 2015 | should be easy to translate to the filesystem of your choice. |
2016 | 2016 | ||
2017 | 2017 | ||
2018 | 88..11.. CCrreeaattee tthhee ffiilleessyysstteemm ffiillee | 2018 | 8.1. Create the filesystem file |
2019 | 2019 | ||
2020 | dd is your friend. All you need to do is tell dd to create an empty | 2020 | dd is your friend. All you need to do is tell dd to create an empty |
2021 | file of the appropriate size. I usually make it sparse to save time | 2021 | file of the appropriate size. I usually make it sparse to save time |
@@ -2032,7 +2032,7 @@ | |||
2032 | 2032 | ||
2033 | 2033 | ||
2034 | 2034 | ||
2035 | 88..22.. AAssssiiggnn tthhee ffiillee ttoo aa UUMMLL ddeevviiccee | 2035 | 8.2. Assign the file to a UML device |
2036 | 2036 | ||
2037 | Add an argument like the following to the UML command line: | 2037 | Add an argument like the following to the UML command line: |
2038 | 2038 | ||
@@ -2045,7 +2045,7 @@ | |||
2045 | 2045 | ||
2046 | 2046 | ||
2047 | 2047 | ||
2048 | 88..33.. CCrreeaattiinngg aanndd mmoouunnttiinngg tthhee ffiilleessyysstteemm | 2048 | 8.3. Creating and mounting the filesystem |
2049 | 2049 | ||
2050 | Make sure that the filesystem is available, either by being built into | 2050 | Make sure that the filesystem is available, either by being built into |
2051 | the kernel, or available as a module, then boot up UML and log in. If | 2051 | the kernel, or available as a module, then boot up UML and log in. If |
@@ -2096,7 +2096,7 @@ | |||
2096 | 2096 | ||
2097 | 2097 | ||
2098 | 2098 | ||
2099 | 99.. HHoosstt ffiillee aacccceessss | 2099 | 9. Host file access |
2100 | 2100 | ||
2101 | 2101 | ||
2102 | If you want to access files on the host machine from inside UML, you | 2102 | If you want to access files on the host machine from inside UML, you |
@@ -2112,7 +2112,7 @@ | |||
2112 | files contained in it just as you would on the host. | 2112 | files contained in it just as you would on the host. |
2113 | 2113 | ||
2114 | 2114 | ||
2115 | 99..11.. UUssiinngg hhoossttffss | 2115 | 9.1. Using hostfs |
2116 | 2116 | ||
2117 | To begin with, make sure that hostfs is available inside the virtual | 2117 | To begin with, make sure that hostfs is available inside the virtual |
2118 | machine with | 2118 | machine with |
@@ -2151,7 +2151,7 @@ | |||
2151 | 2151 | ||
2152 | 2152 | ||
2153 | 2153 | ||
2154 | 99..22.. hhoossttffss aass tthhee rroooott ffiilleessyysstteemm | 2154 | 9.2. hostfs as the root filesystem |
2155 | 2155 | ||
2156 | It's possible to boot from a directory hierarchy on the host using | 2156 | It's possible to boot from a directory hierarchy on the host using |
2157 | hostfs rather than using the standard filesystem in a file. | 2157 | hostfs rather than using the standard filesystem in a file. |
@@ -2194,20 +2194,20 @@ | |||
2194 | UML should then boot as it does normally. | 2194 | UML should then boot as it does normally. |
2195 | 2195 | ||
2196 | 2196 | ||
2197 | 99..33.. BBuuiillddiinngg hhoossttffss | 2197 | 9.3. Building hostfs |
2198 | 2198 | ||
2199 | If you need to build hostfs because it's not in your kernel, you have | 2199 | If you need to build hostfs because it's not in your kernel, you have |
2200 | two choices: | 2200 | two choices: |
2201 | 2201 | ||
2202 | 2202 | ||
2203 | 2203 | ||
2204 | +o Compiling hostfs into the kernel: | 2204 | o Compiling hostfs into the kernel: |
2205 | 2205 | ||
2206 | 2206 | ||
2207 | Reconfigure the kernel and set the 'Host filesystem' option under | 2207 | Reconfigure the kernel and set the 'Host filesystem' option under |
2208 | 2208 | ||
2209 | 2209 | ||
2210 | +o Compiling hostfs as a module: | 2210 | o Compiling hostfs as a module: |
2211 | 2211 | ||
2212 | 2212 | ||
2213 | Reconfigure the kernel and set the 'Host filesystem' option under | 2213 | Reconfigure the kernel and set the 'Host filesystem' option under |
@@ -2228,7 +2228,7 @@ | |||
2228 | 2228 | ||
2229 | 2229 | ||
2230 | 2230 | ||
2231 | 1100.. TThhee MMaannaaggeemmeenntt CCoonnssoollee | 2231 | 10. The Management Console |
2232 | 2232 | ||
2233 | 2233 | ||
2234 | 2234 | ||
@@ -2240,15 +2240,15 @@ | |||
2240 | 2240 | ||
2241 | There are a number of things you can do with the mconsole interface: | 2241 | There are a number of things you can do with the mconsole interface: |
2242 | 2242 | ||
2243 | +o get the kernel version | 2243 | o get the kernel version |
2244 | 2244 | ||
2245 | +o add and remove devices | 2245 | o add and remove devices |
2246 | 2246 | ||
2247 | +o halt or reboot the machine | 2247 | o halt or reboot the machine |
2248 | 2248 | ||
2249 | +o Send SysRq commands | 2249 | o Send SysRq commands |
2250 | 2250 | ||
2251 | +o Pause and resume the UML | 2251 | o Pause and resume the UML |
2252 | 2252 | ||
2253 | 2253 | ||
2254 | You need the mconsole client (uml_mconsole) which is present in CVS | 2254 | You need the mconsole client (uml_mconsole) which is present in CVS |
@@ -2300,28 +2300,28 @@ | |||
2300 | 2300 | ||
2301 | You'll get a prompt, at which you can run one of these commands: | 2301 | You'll get a prompt, at which you can run one of these commands: |
2302 | 2302 | ||
2303 | +o version | 2303 | o version |
2304 | 2304 | ||
2305 | +o halt | 2305 | o halt |
2306 | 2306 | ||
2307 | +o reboot | 2307 | o reboot |
2308 | 2308 | ||
2309 | +o config | 2309 | o config |
2310 | 2310 | ||
2311 | +o remove | 2311 | o remove |
2312 | 2312 | ||
2313 | +o sysrq | 2313 | o sysrq |
2314 | 2314 | ||
2315 | +o help | 2315 | o help |
2316 | 2316 | ||
2317 | +o cad | 2317 | o cad |
2318 | 2318 | ||
2319 | +o stop | 2319 | o stop |
2320 | 2320 | ||
2321 | +o go | 2321 | o go |
2322 | 2322 | ||
2323 | 2323 | ||
2324 | 1100..11.. vveerrssiioonn | 2324 | 10.1. version |
2325 | 2325 | ||
2326 | This takes no arguments. It prints the UML version. | 2326 | This takes no arguments. It prints the UML version. |
2327 | 2327 | ||
@@ -2342,7 +2342,7 @@ | |||
2342 | 2342 | ||
2343 | 2343 | ||
2344 | 2344 | ||
2345 | 1100..22.. hhaalltt aanndd rreebboooott | 2345 | 10.2. halt and reboot |
2346 | 2346 | ||
2347 | These take no arguments. They shut the machine down immediately, with | 2347 | These take no arguments. They shut the machine down immediately, with |
2348 | no syncing of disks and no clean shutdown of userspace. So, they are | 2348 | no syncing of disks and no clean shutdown of userspace. So, they are |
@@ -2357,7 +2357,7 @@ | |||
2357 | 2357 | ||
2358 | 2358 | ||
2359 | 2359 | ||
2360 | 1100..33.. ccoonnffiigg | 2360 | 10.3. config |
2361 | 2361 | ||
2362 | "config" adds a new device to the virtual machine. Currently the ubd | 2362 | "config" adds a new device to the virtual machine. Currently the ubd |
2363 | and network drivers support this. It takes one argument, which is the | 2363 | and network drivers support this. It takes one argument, which is the |
@@ -2378,7 +2378,7 @@ | |||
2378 | 2378 | ||
2379 | 2379 | ||
2380 | 2380 | ||
2381 | 1100..44.. rreemmoovvee | 2381 | 10.4. remove |
2382 | 2382 | ||
2383 | "remove" deletes a device from the system. Its argument is just the | 2383 | "remove" deletes a device from the system. Its argument is just the |
2384 | name of the device to be removed. The device must be idle in whatever | 2384 | name of the device to be removed. The device must be idle in whatever |
@@ -2397,7 +2397,7 @@ | |||
2397 | 2397 | ||
2398 | 2398 | ||
2399 | 2399 | ||
2400 | 1100..55.. ssyyssrrqq | 2400 | 10.5. sysrq |
2401 | 2401 | ||
2402 | This takes one argument, which is a single letter. It calls the | 2402 | This takes one argument, which is a single letter. It calls the |
2403 | generic kernel's SysRq driver, which does whatever is called for by | 2403 | generic kernel's SysRq driver, which does whatever is called for by |
@@ -2407,14 +2407,14 @@ | |||
2407 | 2407 | ||
2408 | 2408 | ||
2409 | 2409 | ||
2410 | 1100..66.. hheellpp | 2410 | 10.6. help |
2411 | 2411 | ||
2412 | "help" returns a string listing the valid commands and what each one | 2412 | "help" returns a string listing the valid commands and what each one |
2413 | does. | 2413 | does. |
2414 | 2414 | ||
2415 | 2415 | ||
2416 | 2416 | ||
2417 | 1100..77.. ccaadd | 2417 | 10.7. cad |
2418 | 2418 | ||
2419 | This invokes the Ctl-Alt-Del action on init. What exactly this ends | 2419 | This invokes the Ctl-Alt-Del action on init. What exactly this ends |
2420 | up doing is up to /etc/inittab. Normally, it reboots the machine. | 2420 | up doing is up to /etc/inittab. Normally, it reboots the machine. |
@@ -2432,7 +2432,7 @@ | |||
2432 | 2432 | ||
2433 | 2433 | ||
2434 | 2434 | ||
2435 | 1100..88.. ssttoopp | 2435 | 10.8. stop |
2436 | 2436 | ||
2437 | This puts the UML in a loop reading mconsole requests until a 'go' | 2437 | This puts the UML in a loop reading mconsole requests until a 'go' |
2438 | mconsole command is received. This is very useful for making backups | 2438 | mconsole command is received. This is very useful for making backups |
@@ -2448,7 +2448,7 @@ | |||
2448 | 2448 | ||
2449 | 2449 | ||
2450 | 2450 | ||
2451 | 1100..99.. ggoo | 2451 | 10.9. go |
2452 | 2452 | ||
2453 | This resumes a UML after being paused by a 'stop' command. Note that | 2453 | This resumes a UML after being paused by a 'stop' command. Note that |
2454 | when the UML has resumed, TCP connections may have timed out and if | 2454 | when the UML has resumed, TCP connections may have timed out and if |
@@ -2462,10 +2462,10 @@ | |||
2462 | 2462 | ||
2463 | 2463 | ||
2464 | 2464 | ||
2465 | 1111.. KKeerrnneell ddeebbuuggggiinngg | 2465 | 11. Kernel debugging |
2466 | 2466 | ||
2467 | 2467 | ||
2468 | NNoottee:: The interface that makes debugging, as described here, possible | 2468 | Note: The interface that makes debugging, as described here, possible |
2469 | is present in 2.4.0-test6 kernels and later. | 2469 | is present in 2.4.0-test6 kernels and later. |
2470 | 2470 | ||
2471 | 2471 | ||
@@ -2485,7 +2485,7 @@ | |||
2485 | 2485 | ||
2486 | 2486 | ||
2487 | 2487 | ||
2488 | 1111..11.. SSttaarrttiinngg tthhee kkeerrnneell uunnddeerr ggddbb | 2488 | 11.1. Starting the kernel under gdb |
2489 | 2489 | ||
2490 | You can have the kernel running under the control of gdb from the | 2490 | You can have the kernel running under the control of gdb from the |
2491 | beginning by putting 'debug' on the command line. You will get an | 2491 | beginning by putting 'debug' on the command line. You will get an |
@@ -2498,7 +2498,7 @@ | |||
2498 | There is a transcript of a debugging session here <debug- | 2498 | There is a transcript of a debugging session here <debug- |
2499 | session.html> , with breakpoints being set in the scheduler and in an | 2499 | session.html> , with breakpoints being set in the scheduler and in an |
2500 | interrupt handler. | 2500 | interrupt handler. |
2501 | 1111..22.. EExxaammiinniinngg sslleeeeppiinngg pprroocceesssseess | 2501 | 11.2. Examining sleeping processes |
2502 | 2502 | ||
2503 | Not every bug is evident in the currently running process. Sometimes, | 2503 | Not every bug is evident in the currently running process. Sometimes, |
2504 | processes hang in the kernel when they shouldn't because they've | 2504 | processes hang in the kernel when they shouldn't because they've |
@@ -2516,7 +2516,7 @@ | |||
2516 | 2516 | ||
2517 | Now what you do is this: | 2517 | Now what you do is this: |
2518 | 2518 | ||
2519 | +o detach from the current thread | 2519 | o detach from the current thread |
2520 | 2520 | ||
2521 | 2521 | ||
2522 | (UML gdb) det | 2522 | (UML gdb) det |
@@ -2525,7 +2525,7 @@ | |||
2525 | 2525 | ||
2526 | 2526 | ||
2527 | 2527 | ||
2528 | +o attach to the thread you are interested in | 2528 | o attach to the thread you are interested in |
2529 | 2529 | ||
2530 | 2530 | ||
2531 | (UML gdb) att <host pid> | 2531 | (UML gdb) att <host pid> |
@@ -2534,7 +2534,7 @@ | |||
2534 | 2534 | ||
2535 | 2535 | ||
2536 | 2536 | ||
2537 | +o look at its stack and anything else of interest | 2537 | o look at its stack and anything else of interest |
2538 | 2538 | ||
2539 | 2539 | ||
2540 | (UML gdb) bt | 2540 | (UML gdb) bt |
@@ -2545,7 +2545,7 @@ | |||
2545 | Note that you can't do anything at this point that requires that a | 2545 | Note that you can't do anything at this point that requires that a |
2546 | process execute, e.g. calling a function | 2546 | process execute, e.g. calling a function |
2547 | 2547 | ||
2548 | +o when you're done looking at that process, reattach to the current | 2548 | o when you're done looking at that process, reattach to the current |
2549 | thread and continue it | 2549 | thread and continue it |
2550 | 2550 | ||
2551 | 2551 | ||
@@ -2569,12 +2569,12 @@ | |||
2569 | 2569 | ||
2570 | 2570 | ||
2571 | 2571 | ||
2572 | 1111..33.. RRuunnnniinngg dddddd oonn UUMMLL | 2572 | 11.3. Running ddd on UML |
2573 | 2573 | ||
2574 | ddd works on UML, but requires a special kludge. The process goes | 2574 | ddd works on UML, but requires a special kludge. The process goes |
2575 | like this: | 2575 | like this: |
2576 | 2576 | ||
2577 | +o Start ddd | 2577 | o Start ddd |
2578 | 2578 | ||
2579 | 2579 | ||
2580 | host% ddd linux | 2580 | host% ddd linux |
@@ -2583,14 +2583,14 @@ | |||
2583 | 2583 | ||
2584 | 2584 | ||
2585 | 2585 | ||
2586 | +o With ps, get the pid of the gdb that ddd started. You can ask the | 2586 | o With ps, get the pid of the gdb that ddd started. You can ask the |
2587 | gdb to tell you, but for some reason that confuses things and | 2587 | gdb to tell you, but for some reason that confuses things and |
2588 | causes a hang. | 2588 | causes a hang. |
2589 | 2589 | ||
2590 | +o run UML with 'debug=parent gdb-pid=<pid>' added to the command line | 2590 | o run UML with 'debug=parent gdb-pid=<pid>' added to the command line |
2591 | - it will just sit there after you hit return | 2591 | - it will just sit there after you hit return |
2592 | 2592 | ||
2593 | +o type 'att 1' to the ddd gdb and you will see something like | 2593 | o type 'att 1' to the ddd gdb and you will see something like |
2594 | 2594 | ||
2595 | 2595 | ||
2596 | 0xa013dc51 in __kill () | 2596 | 0xa013dc51 in __kill () |
@@ -2602,12 +2602,12 @@ | |||
2602 | 2602 | ||
2603 | 2603 | ||
2604 | 2604 | ||
2605 | +o At this point, type 'c', UML will boot up, and you can use ddd just | 2605 | o At this point, type 'c', UML will boot up, and you can use ddd just |
2606 | as you do on any other process. | 2606 | as you do on any other process. |
2607 | 2607 | ||
2608 | 2608 | ||
2609 | 2609 | ||
2610 | 1111..44.. DDeebbuuggggiinngg mmoodduulleess | 2610 | 11.4. Debugging modules |
2611 | 2611 | ||
2612 | gdb has support for debugging code which is dynamically loaded into | 2612 | gdb has support for debugging code which is dynamically loaded into |
2613 | the process. This support is what is needed to debug kernel modules | 2613 | the process. This support is what is needed to debug kernel modules |
@@ -2823,7 +2823,7 @@ | |||
2823 | 2823 | ||
2824 | 2824 | ||
2825 | 2825 | ||
2826 | 1111..55.. AAttttaacchhiinngg ggddbb ttoo tthhee kkeerrnneell | 2826 | 11.5. Attaching gdb to the kernel |
2827 | 2827 | ||
2828 | If you don't have the kernel running under gdb, you can attach gdb to | 2828 | If you don't have the kernel running under gdb, you can attach gdb to |
2829 | it later by sending the tracing thread a SIGUSR1. The first line of | 2829 | it later by sending the tracing thread a SIGUSR1. The first line of |
@@ -2857,7 +2857,7 @@ | |||
2857 | 2857 | ||
2858 | 2858 | ||
2859 | 2859 | ||
2860 | 1111..66.. UUssiinngg aalltteerrnnaattee ddeebbuuggggeerrss | 2860 | 11.6. Using alternate debuggers |
2861 | 2861 | ||
2862 | UML has support for attaching to an already running debugger rather | 2862 | UML has support for attaching to an already running debugger rather |
2863 | than starting gdb itself. This is present in CVS as of 17 Apr 2001. | 2863 | than starting gdb itself. This is present in CVS as of 17 Apr 2001. |
@@ -2886,7 +2886,7 @@ | |||
2886 | An example of an alternate debugger is strace. You can strace the | 2886 | An example of an alternate debugger is strace. You can strace the |
2887 | actual kernel as follows: | 2887 | actual kernel as follows: |
2888 | 2888 | ||
2889 | +o Run the following in a shell | 2889 | o Run the following in a shell |
2890 | 2890 | ||
2891 | 2891 | ||
2892 | host% | 2892 | host% |
@@ -2894,10 +2894,10 @@ | |||
2894 | 2894 | ||
2895 | 2895 | ||
2896 | 2896 | ||
2897 | +o Run UML with 'debug' and 'gdb-pid=<pid>' with the pid printed out | 2897 | o Run UML with 'debug' and 'gdb-pid=<pid>' with the pid printed out |
2898 | by the previous command | 2898 | by the previous command |
2899 | 2899 | ||
2900 | +o Hit return in the shell, and UML will start running, and strace | 2900 | o Hit return in the shell, and UML will start running, and strace |
2901 | output will start accumulating in the output file. | 2901 | output will start accumulating in the output file. |
2902 | 2902 | ||
2903 | Note that this is different from running | 2903 | Note that this is different from running |
@@ -2917,9 +2917,9 @@ | |||
2917 | 2917 | ||
2918 | 2918 | ||
2919 | 2919 | ||
2920 | 1122.. KKeerrnneell ddeebbuuggggiinngg eexxaammpplleess | 2920 | 12. Kernel debugging examples |
2921 | 2921 | ||
2922 | 1122..11.. TThhee ccaassee ooff tthhee hhuunngg ffsscckk | 2922 | 12.1. The case of the hung fsck |
2923 | 2923 | ||
2924 | When booting up the kernel, fsck failed, and dropped me into a shell | 2924 | When booting up the kernel, fsck failed, and dropped me into a shell |
2925 | to fix things up. I ran fsck -y, which hung: | 2925 | to fix things up. I ran fsck -y, which hung: |
@@ -3154,9 +3154,9 @@ | |||
3154 | 3154 | ||
3155 | The interesting things here are : | 3155 | The interesting things here are : |
3156 | 3156 | ||
3157 | +o There are two segfaults on this stack (frames 9 and 14) | 3157 | o There are two segfaults on this stack (frames 9 and 14) |
3158 | 3158 | ||
3159 | +o The first faulting address (frame 11) is 0x50000800 | 3159 | o The first faulting address (frame 11) is 0x50000800 |
3160 | 3160 | ||
3161 | (gdb) p (void *)1342179328 | 3161 | (gdb) p (void *)1342179328 |
3162 | $16 = (void *) 0x50000800 | 3162 | $16 = (void *) 0x50000800 |
@@ -3399,7 +3399,7 @@ | |||
3399 | on will be somewhat clearer. | 3399 | on will be somewhat clearer. |
3400 | 3400 | ||
3401 | 3401 | ||
3402 | 1122..22.. EEppiissooddee 22:: TThhee ccaassee ooff tthhee hhuunngg ffsscckk | 3402 | 12.2. Episode 2: The case of the hung fsck |
3403 | 3403 | ||
3404 | After setting a trap in the SEGV handler for accesses to the signal | 3404 | After setting a trap in the SEGV handler for accesses to the signal |
3405 | thread's stack, I reran the kernel. | 3405 | thread's stack, I reran the kernel. |
@@ -3788,12 +3788,12 @@ | |||
3788 | 3788 | ||
3789 | 3789 | ||
3790 | 3790 | ||
3791 | 1133.. WWhhaatt ttoo ddoo wwhheenn UUMMLL ddooeessnn''tt wwoorrkk | 3791 | 13. What to do when UML doesn't work |
3792 | 3792 | ||
3793 | 3793 | ||
3794 | 3794 | ||
3795 | 3795 | ||
3796 | 1133..11.. SSttrraannggee ccoommppiillaattiioonn eerrrroorrss wwhheenn yyoouu bbuuiilldd ffrroomm ssoouurrccee | 3796 | 13.1. Strange compilation errors when you build from source |
3797 | 3797 | ||
3798 | As of test11, it is necessary to have "ARCH=um" in the environment or | 3798 | As of test11, it is necessary to have "ARCH=um" in the environment or |
3799 | on the make command line for all steps in building UML, including | 3799 | on the make command line for all steps in building UML, including |
@@ -3824,8 +3824,8 @@ | |||
3824 | 3824 | ||
3825 | 3825 | ||
3826 | 3826 | ||
3827 | 1133..33.. AA vvaarriieettyy ooff ppaanniiccss aanndd hhaannggss wwiitthh //ttmmpp oonn aa rreeiisseerrffss ffiilleessyyss-- | 3827 | 13.3. A variety of panics and hangs with /tmp on a reiserfs filesys- |
3828 | tteemm | 3828 | tem |
3829 | 3829 | ||
3830 | I saw this on reiserfs 3.5.21 and it seems to be fixed in 3.5.27. | 3830 | I saw this on reiserfs 3.5.21 and it seems to be fixed in 3.5.27. |
3831 | Panics preceded by | 3831 | Panics preceded by |
@@ -3842,8 +3842,8 @@ | |||
3842 | 3842 | ||
3843 | 3843 | ||
3844 | 3844 | ||
3845 | 1133..44.. TThhee ccoommppiillee ffaaiillss wwiitthh eerrrroorrss aabboouutt ccoonnfflliiccttiinngg ttyyppeess ffoorr | 3845 | 13.4. The compile fails with errors about conflicting types for |
3846 | ''ooppeenn'',, ''dduupp'',, aanndd ''wwaaiittppiidd'' | 3846 | 'open', 'dup', and 'waitpid' |
3847 | 3847 | ||
3848 | This happens when you build in /usr/src/linux. The UML build makes | 3848 | This happens when you build in /usr/src/linux. The UML build makes |
3849 | the include/asm link point to include/asm-um. /usr/include/asm points | 3849 | the include/asm link point to include/asm-um. /usr/include/asm points |
@@ -3854,14 +3854,14 @@ | |||
3854 | 3854 | ||
3855 | 3855 | ||
3856 | 3856 | ||
3857 | 1133..55.. UUMMLL ddooeessnn''tt wwoorrkk wwhheenn //ttmmpp iiss aann NNFFSS ffiilleessyysstteemm | 3857 | 13.5. UML doesn't work when /tmp is an NFS filesystem |
3858 | 3858 | ||
3859 | This seems to be a similar situation with the ReiserFS problem above. | 3859 | This seems to be a similar situation with the ReiserFS problem above. |
3860 | Some versions of NFS seems not to handle mmap correctly, which UML | 3860 | Some versions of NFS seems not to handle mmap correctly, which UML |
3861 | depends on. The workaround is have /tmp be a non-NFS directory. | 3861 | depends on. The workaround is have /tmp be a non-NFS directory. |
3862 | 3862 | ||
3863 | 3863 | ||
3864 | 1133..66.. UUMMLL hhaannggss oonn bboooott wwhheenn ccoommppiilleedd wwiitthh ggpprrooff ssuuppppoorrtt | 3864 | 13.6. UML hangs on boot when compiled with gprof support |
3865 | 3865 | ||
3866 | If you build UML with gprof support and, early in the boot, it does | 3866 | If you build UML with gprof support and, early in the boot, it does |
3867 | this | 3867 | this |
@@ -3878,7 +3878,7 @@ | |||
3878 | 3878 | ||
3879 | 3879 | ||
3880 | 3880 | ||
3881 | 1133..77.. ssyyssllooggdd ddiieess wwiitthh aa SSIIGGTTEERRMM oonn ssttaarrttuupp | 3881 | 13.7. syslogd dies with a SIGTERM on startup |
3882 | 3882 | ||
3883 | The exact boot error depends on the distribution that you're booting, | 3883 | The exact boot error depends on the distribution that you're booting, |
3884 | but Debian produces this: | 3884 | but Debian produces this: |
@@ -3897,17 +3897,17 @@ | |||
3897 | 3897 | ||
3898 | 3898 | ||
3899 | 3899 | ||
3900 | 1133..88.. TTUUNN//TTAAPP nneettwwoorrkkiinngg ddooeessnn''tt wwoorrkk oonn aa 22..44 hhoosstt | 3900 | 13.8. TUN/TAP networking doesn't work on a 2.4 host |
3901 | 3901 | ||
3902 | There are a couple of problems which were | 3902 | There are a couple of problems which were |
3903 | <http://www.geocrawler.com/lists/3/SourceForge/597/0/> name="pointed | 3903 | <http://www.geocrawler.com/lists/3/SourceForge/597/0/> name="pointed |
3904 | out"> by Tim Robinson <timro at trkr dot net> | 3904 | out"> by Tim Robinson <timro at trkr dot net> |
3905 | 3905 | ||
3906 | +o It doesn't work on hosts running 2.4.7 (or thereabouts) or earlier. | 3906 | o It doesn't work on hosts running 2.4.7 (or thereabouts) or earlier. |
3907 | The fix is to upgrade to something more recent and then read the | 3907 | The fix is to upgrade to something more recent and then read the |
3908 | next item. | 3908 | next item. |
3909 | 3909 | ||
3910 | +o If you see | 3910 | o If you see |
3911 | 3911 | ||
3912 | 3912 | ||
3913 | File descriptor in bad state | 3913 | File descriptor in bad state |
@@ -3921,8 +3921,8 @@ | |||
3921 | 3921 | ||
3922 | 3922 | ||
3923 | 3923 | ||
3924 | 1133..99.. YYoouu ccaann nneettwwoorrkk ttoo tthhee hhoosstt bbuutt nnoott ttoo ootthheerr mmaacchhiinneess oonn tthhee | 3924 | 13.9. You can network to the host but not to other machines on the |
3925 | nneett | 3925 | net |
3926 | 3926 | ||
3927 | If you can connect to the host, and the host can connect to UML, but | 3927 | If you can connect to the host, and the host can connect to UML, but |
3928 | you cannot connect to any other machines, then you may need to enable | 3928 | you cannot connect to any other machines, then you may need to enable |
@@ -3972,7 +3972,7 @@ | |||
3972 | 3972 | ||
3973 | 3973 | ||
3974 | 3974 | ||
3975 | 1133..1100.. II hhaavvee nnoo rroooott aanndd II wwaanntt ttoo ssccrreeaamm | 3975 | 13.10. I have no root and I want to scream |
3976 | 3976 | ||
3977 | Thanks to Birgit Wahlich for telling me about this strange one. It | 3977 | Thanks to Birgit Wahlich for telling me about this strange one. It |
3978 | turns out that there's a limit of six environment variables on the | 3978 | turns out that there's a limit of six environment variables on the |
@@ -3987,7 +3987,7 @@ | |||
3987 | 3987 | ||
3988 | 3988 | ||
3989 | 3989 | ||
3990 | 1133..1111.. UUMMLL bbuuiilldd ccoonnfflliicctt bbeettwweeeenn ppttrraaccee..hh aanndd uuccoonntteexxtt..hh | 3990 | 13.11. UML build conflict between ptrace.h and ucontext.h |
3991 | 3991 | ||
3992 | On some older systems, /usr/include/asm/ptrace.h and | 3992 | On some older systems, /usr/include/asm/ptrace.h and |
3993 | /usr/include/sys/ucontext.h define the same names. So, when they're | 3993 | /usr/include/sys/ucontext.h define the same names. So, when they're |
@@ -4007,7 +4007,7 @@ | |||
4007 | 4007 | ||
4008 | 4008 | ||
4009 | 4009 | ||
4010 | 1133..1122.. TThhee UUMMLL BBooggooMMiippss iiss eexxaaccttllyy hhaallff tthhee hhoosstt''ss BBooggooMMiippss | 4010 | 13.12. The UML BogoMips is exactly half the host's BogoMips |
4011 | 4011 | ||
4012 | On i386 kernels, there are two ways of running the loop that is used | 4012 | On i386 kernels, there are two ways of running the loop that is used |
4013 | to calculate the BogoMips rating, using the TSC if it's there or using | 4013 | to calculate the BogoMips rating, using the TSC if it's there or using |
@@ -4019,7 +4019,7 @@ | |||
4019 | 4019 | ||
4020 | 4020 | ||
4021 | 4021 | ||
4022 | 1133..1133.. WWhheenn yyoouu rruunn UUMMLL,, iitt iimmmmeeddiiaatteellyy sseeggffaauullttss | 4022 | 13.13. When you run UML, it immediately segfaults |
4023 | 4023 | ||
4024 | If the host is configured with the 2G/2G address space split, that's | 4024 | If the host is configured with the 2G/2G address space split, that's |
4025 | why. See ``UML on 2G/2G hosts'' for the details on getting UML to | 4025 | why. See ``UML on 2G/2G hosts'' for the details on getting UML to |
@@ -4027,7 +4027,7 @@ | |||
4027 | 4027 | ||
4028 | 4028 | ||
4029 | 4029 | ||
4030 | 1133..1144.. xxtteerrmmss aappppeeaarr,, tthheenn iimmmmeeddiiaatteellyy ddiissaappppeeaarr | 4030 | 13.14. xterms appear, then immediately disappear |
4031 | 4031 | ||
4032 | If you're running an up to date kernel with an old release of | 4032 | If you're running an up to date kernel with an old release of |
4033 | uml_utilities, the port-helper program will not work properly, so | 4033 | uml_utilities, the port-helper program will not work properly, so |
@@ -4039,7 +4039,7 @@ | |||
4039 | 4039 | ||
4040 | 4040 | ||
4041 | 4041 | ||
4042 | 1133..1155.. AAnnyy ootthheerr ppaanniicc,, hhaanngg,, oorr ssttrraannggee bbeehhaavviioorr | 4042 | 13.15. Any other panic, hang, or strange behavior |
4043 | 4043 | ||
4044 | If you're seeing truly strange behavior, such as hangs or panics that | 4044 | If you're seeing truly strange behavior, such as hangs or panics that |
4045 | happen in random places, or you try running the debugger to see what's | 4045 | happen in random places, or you try running the debugger to see what's |
@@ -4059,7 +4059,7 @@ | |||
4059 | 4059 | ||
4060 | If you want to be super-helpful, read ``Diagnosing Problems'' and | 4060 | If you want to be super-helpful, read ``Diagnosing Problems'' and |
4061 | follow the instructions contained therein. | 4061 | follow the instructions contained therein. |
4062 | 1144.. DDiiaaggnnoossiinngg PPrroobblleemmss | 4062 | 14. Diagnosing Problems |
4063 | 4063 | ||
4064 | 4064 | ||
4065 | If you get UML to crash, hang, or otherwise misbehave, you should | 4065 | If you get UML to crash, hang, or otherwise misbehave, you should |
@@ -4078,7 +4078,7 @@ | |||
4078 | ``Kernel debugging'' UML first. | 4078 | ``Kernel debugging'' UML first. |
4079 | 4079 | ||
4080 | 4080 | ||
4081 | 1144..11.. CCaassee 11 :: NNoorrmmaall kkeerrnneell ppaanniiccss | 4081 | 14.1. Case 1 : Normal kernel panics |
4082 | 4082 | ||
4083 | The most common case is for a normal thread to panic. To debug this, | 4083 | The most common case is for a normal thread to panic. To debug this, |
4084 | you will need to run it under the debugger (add 'debug' to the command | 4084 | you will need to run it under the debugger (add 'debug' to the command |
@@ -4128,7 +4128,7 @@ | |||
4128 | to get that information from the faulting ip. | 4128 | to get that information from the faulting ip. |
4129 | 4129 | ||
4130 | 4130 | ||
4131 | 1144..22.. CCaassee 22 :: TTrraacciinngg tthhrreeaadd ppaanniiccss | 4131 | 14.2. Case 2 : Tracing thread panics |
4132 | 4132 | ||
4133 | The less common and more painful case is when the tracing thread | 4133 | The less common and more painful case is when the tracing thread |
4134 | panics. In this case, the kernel debugger will be useless because it | 4134 | panics. In this case, the kernel debugger will be useless because it |
@@ -4161,7 +4161,7 @@ | |||
4161 | backtrace in and wait for our crack debugging team to fix the problem. | 4161 | backtrace in and wait for our crack debugging team to fix the problem. |
4162 | 4162 | ||
4163 | 4163 | ||
4164 | 1144..33.. CCaassee 33 :: TTrraacciinngg tthhrreeaadd ppaanniiccss ccaauusseedd bbyy ootthheerr tthhrreeaaddss | 4164 | 14.3. Case 3 : Tracing thread panics caused by other threads |
4165 | 4165 | ||
4166 | However, there are cases where the misbehavior of another thread | 4166 | However, there are cases where the misbehavior of another thread |
4167 | caused the problem. The most common panic of this type is: | 4167 | caused the problem. The most common panic of this type is: |
@@ -4227,7 +4227,7 @@ | |||
4227 | 4227 | ||
4228 | 4228 | ||
4229 | 4229 | ||
4230 | 1144..44.. CCaassee 44 :: HHaannggss | 4230 | 14.4. Case 4 : Hangs |
4231 | 4231 | ||
4232 | Hangs seem to be fairly rare, but they sometimes happen. When a hang | 4232 | Hangs seem to be fairly rare, but they sometimes happen. When a hang |
4233 | happens, we need a backtrace from the offending process. Run the | 4233 | happens, we need a backtrace from the offending process. Run the |
@@ -4257,7 +4257,7 @@ | |||
4257 | 4257 | ||
4258 | 4258 | ||
4259 | 4259 | ||
4260 | 1155.. TThhaannkkss | 4260 | 15. Thanks |
4261 | 4261 | ||
4262 | 4262 | ||
4263 | A number of people have helped this project in various ways, and this | 4263 | A number of people have helped this project in various ways, and this |
@@ -4274,20 +4274,20 @@ | |||
4274 | bookkeeping lapses and I forget about contributions. | 4274 | bookkeeping lapses and I forget about contributions. |
4275 | 4275 | ||
4276 | 4276 | ||
4277 | 1155..11.. CCooddee aanndd DDooccuummeennttaattiioonn | 4277 | 15.1. Code and Documentation |
4278 | 4278 | ||
4279 | Rusty Russell <rusty at linuxcare.com.au> - | 4279 | Rusty Russell <rusty at linuxcare.com.au> - |
4280 | 4280 | ||
4281 | +o wrote the HOWTO <http://user-mode- | 4281 | o wrote the HOWTO <http://user-mode- |
4282 | linux.sourceforge.net/UserModeLinux-HOWTO.html> | 4282 | linux.sourceforge.net/UserModeLinux-HOWTO.html> |
4283 | 4283 | ||
4284 | +o prodded me into making this project official and putting it on | 4284 | o prodded me into making this project official and putting it on |
4285 | SourceForge | 4285 | SourceForge |
4286 | 4286 | ||
4287 | +o came up with the way cool UML logo <http://user-mode- | 4287 | o came up with the way cool UML logo <http://user-mode- |
4288 | linux.sourceforge.net/uml-small.png> | 4288 | linux.sourceforge.net/uml-small.png> |
4289 | 4289 | ||
4290 | +o redid the config process | 4290 | o redid the config process |
4291 | 4291 | ||
4292 | 4292 | ||
4293 | Peter Moulder <reiter at netspace.net.au> - Fixed my config and build | 4293 | Peter Moulder <reiter at netspace.net.au> - Fixed my config and build |
@@ -4296,18 +4296,18 @@ | |||
4296 | 4296 | ||
4297 | Bill Stearns <wstearns at pobox.com> - | 4297 | Bill Stearns <wstearns at pobox.com> - |
4298 | 4298 | ||
4299 | +o HOWTO updates | 4299 | o HOWTO updates |
4300 | 4300 | ||
4301 | +o lots of bug reports | 4301 | o lots of bug reports |
4302 | 4302 | ||
4303 | +o lots of testing | 4303 | o lots of testing |
4304 | 4304 | ||
4305 | +o dedicated a box (uml.ists.dartmouth.edu) to support UML development | 4305 | o dedicated a box (uml.ists.dartmouth.edu) to support UML development |
4306 | 4306 | ||
4307 | +o wrote the mkrootfs script, which allows bootable filesystems of | 4307 | o wrote the mkrootfs script, which allows bootable filesystems of |
4308 | RPM-based distributions to be cranked out | 4308 | RPM-based distributions to be cranked out |
4309 | 4309 | ||
4310 | +o cranked out a large number of filesystems with said script | 4310 | o cranked out a large number of filesystems with said script |
4311 | 4311 | ||
4312 | 4312 | ||
4313 | Jim Leu <jleu at mindspring.com> - Wrote the virtual ethernet driver | 4313 | Jim Leu <jleu at mindspring.com> - Wrote the virtual ethernet driver |
@@ -4375,176 +4375,176 @@ | |||
4375 | 4375 | ||
4376 | David Coulson <http://davidcoulson.net> - | 4376 | David Coulson <http://davidcoulson.net> - |
4377 | 4377 | ||
4378 | +o Set up the usermodelinux.org <http://usermodelinux.org> site, | 4378 | o Set up the usermodelinux.org <http://usermodelinux.org> site, |
4379 | which is a great way of keeping the UML user community on top of | 4379 | which is a great way of keeping the UML user community on top of |
4380 | UML goings-on. | 4380 | UML goings-on. |
4381 | 4381 | ||
4382 | +o Site documentation and updates | 4382 | o Site documentation and updates |
4383 | 4383 | ||
4384 | +o Nifty little UML management daemon UMLd | 4384 | o Nifty little UML management daemon UMLd |
4385 | <http://uml.openconsultancy.com/umld/> | 4385 | <http://uml.openconsultancy.com/umld/> |
4386 | 4386 | ||
4387 | +o Lots of testing and bug reports | 4387 | o Lots of testing and bug reports |
4388 | 4388 | ||
4389 | 4389 | ||
4390 | 4390 | ||
4391 | 4391 | ||
4392 | 1155..22.. FFlluusshhiinngg oouutt bbuuggss | 4392 | 15.2. Flushing out bugs |
4393 | 4393 | ||
4394 | 4394 | ||
4395 | 4395 | ||
4396 | +o Yuri Pudgorodsky | 4396 | o Yuri Pudgorodsky |
4397 | 4397 | ||
4398 | +o Gerald Britton | 4398 | o Gerald Britton |
4399 | 4399 | ||
4400 | +o Ian Wehrman | 4400 | o Ian Wehrman |
4401 | 4401 | ||
4402 | +o Gord Lamb | 4402 | o Gord Lamb |
4403 | 4403 | ||
4404 | +o Eugene Koontz | 4404 | o Eugene Koontz |
4405 | 4405 | ||
4406 | +o John H. Hartman | 4406 | o John H. Hartman |
4407 | 4407 | ||
4408 | +o Anders Karlsson | 4408 | o Anders Karlsson |
4409 | 4409 | ||
4410 | +o Daniel Phillips | 4410 | o Daniel Phillips |
4411 | 4411 | ||
4412 | +o John Fremlin | 4412 | o John Fremlin |
4413 | 4413 | ||
4414 | +o Rainer Burgstaller | 4414 | o Rainer Burgstaller |
4415 | 4415 | ||
4416 | +o James Stevenson | 4416 | o James Stevenson |
4417 | 4417 | ||
4418 | +o Matt Clay | 4418 | o Matt Clay |
4419 | 4419 | ||
4420 | +o Cliff Jefferies | 4420 | o Cliff Jefferies |
4421 | 4421 | ||
4422 | +o Geoff Hoff | 4422 | o Geoff Hoff |
4423 | 4423 | ||
4424 | +o Lennert Buytenhek | 4424 | o Lennert Buytenhek |
4425 | 4425 | ||
4426 | +o Al Viro | 4426 | o Al Viro |
4427 | 4427 | ||
4428 | +o Frank Klingenhoefer | 4428 | o Frank Klingenhoefer |
4429 | 4429 | ||
4430 | +o Livio Baldini Soares | 4430 | o Livio Baldini Soares |
4431 | 4431 | ||
4432 | +o Jon Burgess | 4432 | o Jon Burgess |
4433 | 4433 | ||
4434 | +o Petru Paler | 4434 | o Petru Paler |
4435 | 4435 | ||
4436 | +o Paul | 4436 | o Paul |
4437 | 4437 | ||
4438 | +o Chris Reahard | 4438 | o Chris Reahard |
4439 | 4439 | ||
4440 | +o Sverker Nilsson | 4440 | o Sverker Nilsson |
4441 | 4441 | ||
4442 | +o Gong Su | 4442 | o Gong Su |
4443 | 4443 | ||
4444 | +o johan verrept | 4444 | o johan verrept |
4445 | 4445 | ||
4446 | +o Bjorn Eriksson | 4446 | o Bjorn Eriksson |
4447 | 4447 | ||
4448 | +o Lorenzo Allegrucci | 4448 | o Lorenzo Allegrucci |
4449 | 4449 | ||
4450 | +o Muli Ben-Yehuda | 4450 | o Muli Ben-Yehuda |
4451 | 4451 | ||
4452 | +o David Mansfield | 4452 | o David Mansfield |
4453 | 4453 | ||
4454 | +o Howard Goff | 4454 | o Howard Goff |
4455 | 4455 | ||
4456 | +o Mike Anderson | 4456 | o Mike Anderson |
4457 | 4457 | ||
4458 | +o John Byrne | 4458 | o John Byrne |
4459 | 4459 | ||
4460 | +o Sapan J. Batia | 4460 | o Sapan J. Batia |
4461 | 4461 | ||
4462 | +o Iris Huang | 4462 | o Iris Huang |
4463 | 4463 | ||
4464 | +o Jan Hudec | 4464 | o Jan Hudec |
4465 | 4465 | ||
4466 | +o Voluspa | 4466 | o Voluspa |
4467 | 4467 | ||
4468 | 4468 | ||
4469 | 4469 | ||
4470 | 4470 | ||
4471 | 1155..33.. BBuugglleettss aanndd cclleeaann--uuppss | 4471 | 15.3. Buglets and clean-ups |
4472 | 4472 | ||
4473 | 4473 | ||
4474 | 4474 | ||
4475 | +o Dave Zarzycki | 4475 | o Dave Zarzycki |
4476 | 4476 | ||
4477 | +o Adam Lazur | 4477 | o Adam Lazur |
4478 | 4478 | ||
4479 | +o Boria Feigin | 4479 | o Boria Feigin |
4480 | 4480 | ||
4481 | +o Brian J. Murrell | 4481 | o Brian J. Murrell |
4482 | 4482 | ||
4483 | +o JS | 4483 | o JS |
4484 | 4484 | ||
4485 | +o Roman Zippel | 4485 | o Roman Zippel |
4486 | 4486 | ||
4487 | +o Wil Cooley | 4487 | o Wil Cooley |
4488 | 4488 | ||
4489 | +o Ayelet Shemesh | 4489 | o Ayelet Shemesh |
4490 | 4490 | ||
4491 | +o Will Dyson | 4491 | o Will Dyson |
4492 | 4492 | ||
4493 | +o Sverker Nilsson | 4493 | o Sverker Nilsson |
4494 | 4494 | ||
4495 | +o dvorak | 4495 | o dvorak |
4496 | 4496 | ||
4497 | +o v.naga srinivas | 4497 | o v.naga srinivas |
4498 | 4498 | ||
4499 | +o Shlomi Fish | 4499 | o Shlomi Fish |
4500 | 4500 | ||
4501 | +o Roger Binns | 4501 | o Roger Binns |
4502 | 4502 | ||
4503 | +o johan verrept | 4503 | o johan verrept |
4504 | 4504 | ||
4505 | +o MrChuoi | 4505 | o MrChuoi |
4506 | 4506 | ||
4507 | +o Peter Cleve | 4507 | o Peter Cleve |
4508 | 4508 | ||
4509 | +o Vincent Guffens | 4509 | o Vincent Guffens |
4510 | 4510 | ||
4511 | +o Nathan Scott | 4511 | o Nathan Scott |
4512 | 4512 | ||
4513 | +o Patrick Caulfield | 4513 | o Patrick Caulfield |
4514 | 4514 | ||
4515 | +o jbearce | 4515 | o jbearce |
4516 | 4516 | ||
4517 | +o Catalin Marinas | 4517 | o Catalin Marinas |
4518 | 4518 | ||
4519 | +o Shane Spencer | 4519 | o Shane Spencer |
4520 | 4520 | ||
4521 | +o Zou Min | 4521 | o Zou Min |
4522 | 4522 | ||
4523 | 4523 | ||
4524 | +o Ryan Boder | 4524 | o Ryan Boder |
4525 | 4525 | ||
4526 | +o Lorenzo Colitti | 4526 | o Lorenzo Colitti |
4527 | 4527 | ||
4528 | +o Gwendal Grignou | 4528 | o Gwendal Grignou |
4529 | 4529 | ||
4530 | +o Andre' Breiler | 4530 | o Andre' Breiler |
4531 | 4531 | ||
4532 | +o Tsutomu Yasuda | 4532 | o Tsutomu Yasuda |
4533 | 4533 | ||
4534 | 4534 | ||
4535 | 4535 | ||
4536 | 1155..44.. CCaassee SSttuuddiieess | 4536 | 15.4. Case Studies |
4537 | 4537 | ||
4538 | 4538 | ||
4539 | +o Jon Wright | 4539 | o Jon Wright |
4540 | 4540 | ||
4541 | +o William McEwan | 4541 | o William McEwan |
4542 | 4542 | ||
4543 | +o Michael Richardson | 4543 | o Michael Richardson |
4544 | 4544 | ||
4545 | 4545 | ||
4546 | 4546 | ||
4547 | 1155..55.. OOtthheerr ccoonnttrriibbuuttiioonnss | 4547 | 15.5. Other contributions |
4548 | 4548 | ||
4549 | 4549 | ||
4550 | Bill Carr <Bill.Carr at compaq.com> made the Red Hat mkrootfs script | 4550 | Bill Carr <Bill.Carr at compaq.com> made the Red Hat mkrootfs script |