diff options
Diffstat (limited to 'Documentation')
68 files changed, 2065 insertions, 499 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index c17cd4bb2290..1b777b960492 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX | |||
@@ -328,8 +328,6 @@ sysrq.txt | |||
328 | - info on the magic SysRq key. | 328 | - info on the magic SysRq key. |
329 | telephony/ | 329 | telephony/ |
330 | - directory with info on telephony (e.g. voice over IP) support. | 330 | - directory with info on telephony (e.g. voice over IP) support. |
331 | uml/ | ||
332 | - directory with information about User Mode Linux. | ||
333 | unicode.txt | 331 | unicode.txt |
334 | - info on the Unicode character/font mapping used in Linux. | 332 | - info on the Unicode character/font mapping used in Linux. |
335 | unshare.txt | 333 | unshare.txt |
diff --git a/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus b/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus new file mode 100644 index 000000000000..c2a270b45b03 --- /dev/null +++ b/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus | |||
@@ -0,0 +1,10 @@ | |||
1 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/startup_profile | ||
2 | Date: October 2010 | ||
3 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
4 | Description: The integer value of this attribute ranges from 0-4. | ||
5 | When read, this attribute returns the number of the actual | ||
6 | profile. This value is persistent, so its equivalent to the | ||
7 | profile that's active when the mouse is powered on next time. | ||
8 | When written, this file sets the number of the startup profile | ||
9 | and the mouse activates this profile immediately. | ||
10 | Please use actual_profile, it does the same thing. | ||
diff --git a/Documentation/ABI/testing/sysfs-bus-bcma b/Documentation/ABI/testing/sysfs-bus-bcma new file mode 100644 index 000000000000..06b62badddd1 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-bcma | |||
@@ -0,0 +1,31 @@ | |||
1 | What: /sys/bus/bcma/devices/.../manuf | ||
2 | Date: May 2011 | ||
3 | KernelVersion: 2.6.40 | ||
4 | Contact: Rafał Miłecki <zajec5@gmail.com> | ||
5 | Description: | ||
6 | Each BCMA core has it's manufacturer id. See | ||
7 | include/linux/bcma/bcma.h for possible values. | ||
8 | |||
9 | What: /sys/bus/bcma/devices/.../id | ||
10 | Date: May 2011 | ||
11 | KernelVersion: 2.6.40 | ||
12 | Contact: Rafał Miłecki <zajec5@gmail.com> | ||
13 | Description: | ||
14 | There are a few types of BCMA cores, they can be identified by | ||
15 | id field. | ||
16 | |||
17 | What: /sys/bus/bcma/devices/.../rev | ||
18 | Date: May 2011 | ||
19 | KernelVersion: 2.6.40 | ||
20 | Contact: Rafał Miłecki <zajec5@gmail.com> | ||
21 | Description: | ||
22 | BCMA cores of the same type can still slightly differ depending | ||
23 | on their revision. Use it for detailed programming. | ||
24 | |||
25 | What: /sys/bus/bcma/devices/.../class | ||
26 | Date: May 2011 | ||
27 | KernelVersion: 2.6.40 | ||
28 | Contact: Rafał Miłecki <zajec5@gmail.com> | ||
29 | Description: | ||
30 | Each BCMA core is identified by few fields, including class it | ||
31 | belongs to. See include/linux/bcma/bcma.h for possible values. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu index 7564e88bfa43..e7be75b96e4b 100644 --- a/Documentation/ABI/testing/sysfs-devices-system-cpu +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu | |||
@@ -183,21 +183,21 @@ Description: Discover and change clock speed of CPUs | |||
183 | to learn how to control the knobs. | 183 | to learn how to control the knobs. |
184 | 184 | ||
185 | 185 | ||
186 | What: /sys/devices/system/cpu/cpu*/cache/index*/cache_disable_X | 186 | What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1} |
187 | Date: August 2008 | 187 | Date: August 2008 |
188 | KernelVersion: 2.6.27 | 188 | KernelVersion: 2.6.27 |
189 | Contact: mark.langsdorf@amd.com | 189 | Contact: discuss@x86-64.org |
190 | Description: These files exist in every cpu's cache index directories. | 190 | Description: Disable L3 cache indices |
191 | There are currently 2 cache_disable_# files in each | 191 | |
192 | directory. Reading from these files on a supported | 192 | These files exist in every CPU's cache/index3 directory. Each |
193 | processor will return that cache disable index value | 193 | cache_disable_{0,1} file corresponds to one disable slot which |
194 | for that processor and node. Writing to one of these | 194 | can be used to disable a cache index. Reading from these files |
195 | files will cause the specificed cache index to be disabled. | 195 | on a processor with this functionality will return the currently |
196 | 196 | disabled index for that node. There is one L3 structure per | |
197 | Currently, only AMD Family 10h Processors support cache index | 197 | node, or per internal node on MCM machines. Writing a valid |
198 | disable, and only for their L3 caches. See the BIOS and | 198 | index to one of these files will cause the specificed cache |
199 | Kernel Developer's Guide at | 199 | index to be disabled. |
200 | http://support.amd.com/us/Embedded_TechDocs/31116-Public-GH-BKDG_3-28_5-28-09.pdf | 200 | |
201 | for formatting information and other details on the | 201 | All AMD processors with L3 caches provide this functionality. |
202 | cache index disable. | 202 | For details, see BKDGs at |
203 | Users: joachim.deguara@amd.com | 203 | http://developer.amd.com/documentation/guides/Pages/default.aspx |
diff --git a/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus b/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus index 326e05452da7..c1b53b8bc2ae 100644 --- a/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus +++ b/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus | |||
@@ -1,9 +1,12 @@ | |||
1 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/actual_profile | 1 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/actual_profile |
2 | Date: October 2010 | 2 | Date: October 2010 |
3 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | 3 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> |
4 | Description: When read, this file returns the number of the actual profile in | 4 | Description: The integer value of this attribute ranges from 0-4. |
5 | range 0-4. | 5 | When read, this attribute returns the number of the actual |
6 | This file is readonly. | 6 | profile. This value is persistent, so its equivalent to the |
7 | profile that's active when the mouse is powered on next time. | ||
8 | When written, this file sets the number of the startup profile | ||
9 | and the mouse activates this profile immediately. | ||
7 | Users: http://roccat.sourceforge.net | 10 | Users: http://roccat.sourceforge.net |
8 | 11 | ||
9 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/firmware_version | 12 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/firmware_version |
@@ -89,16 +92,6 @@ Description: The mouse has a tracking- and a distance-control-unit. These | |||
89 | This file is writeonly. | 92 | This file is writeonly. |
90 | Users: http://roccat.sourceforge.net | 93 | Users: http://roccat.sourceforge.net |
91 | 94 | ||
92 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/startup_profile | ||
93 | Date: October 2010 | ||
94 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
95 | Description: The integer value of this attribute ranges from 0-4. | ||
96 | When read, this attribute returns the number of the profile | ||
97 | that's active when the mouse is powered on. | ||
98 | When written, this file sets the number of the startup profile | ||
99 | and the mouse activates this profile immediately. | ||
100 | Users: http://roccat.sourceforge.net | ||
101 | |||
102 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu | 95 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu |
103 | Date: October 2010 | 96 | Date: October 2010 |
104 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | 97 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> |
diff --git a/Documentation/ABI/testing/sysfs-firmware-dmi b/Documentation/ABI/testing/sysfs-firmware-dmi index ba9da9503c23..c78f9ab01e56 100644 --- a/Documentation/ABI/testing/sysfs-firmware-dmi +++ b/Documentation/ABI/testing/sysfs-firmware-dmi | |||
@@ -14,14 +14,15 @@ Description: | |||
14 | 14 | ||
15 | DMI is structured as a large table of entries, where | 15 | DMI is structured as a large table of entries, where |
16 | each entry has a common header indicating the type and | 16 | each entry has a common header indicating the type and |
17 | length of the entry, as well as 'handle' that is | 17 | length of the entry, as well as a firmware-provided |
18 | supposed to be unique amongst all entries. | 18 | 'handle' that is supposed to be unique amongst all |
19 | entries. | ||
19 | 20 | ||
20 | Some entries are required by the specification, but many | 21 | Some entries are required by the specification, but many |
21 | others are optional. In general though, users should | 22 | others are optional. In general though, users should |
22 | never expect to find a specific entry type on their | 23 | never expect to find a specific entry type on their |
23 | system unless they know for certain what their firmware | 24 | system unless they know for certain what their firmware |
24 | is doing. Machine to machine will vary. | 25 | is doing. Machine to machine experiences will vary. |
25 | 26 | ||
26 | Multiple entries of the same type are allowed. In order | 27 | Multiple entries of the same type are allowed. In order |
27 | to handle these duplicate entry types, each entry is | 28 | to handle these duplicate entry types, each entry is |
@@ -67,25 +68,24 @@ Description: | |||
67 | and the two terminating nul characters. | 68 | and the two terminating nul characters. |
68 | type : The type of the entry. This value is the same | 69 | type : The type of the entry. This value is the same |
69 | as found in the directory name. It indicates | 70 | as found in the directory name. It indicates |
70 | how the rest of the entry should be | 71 | how the rest of the entry should be interpreted. |
71 | interpreted. | ||
72 | instance: The instance ordinal of the entry for the | 72 | instance: The instance ordinal of the entry for the |
73 | given type. This value is the same as found | 73 | given type. This value is the same as found |
74 | in the parent directory name. | 74 | in the parent directory name. |
75 | position: The position of the entry within the entirety | 75 | position: The ordinal position (zero-based) of the entry |
76 | of the entirety. | 76 | within the entirety of the DMI entry table. |
77 | 77 | ||
78 | === Entry Specialization === | 78 | === Entry Specialization === |
79 | 79 | ||
80 | Some entry types may have other information available in | 80 | Some entry types may have other information available in |
81 | sysfs. | 81 | sysfs. Not all types are specialized. |
82 | 82 | ||
83 | --- Type 15 - System Event Log --- | 83 | --- Type 15 - System Event Log --- |
84 | 84 | ||
85 | This entry allows the firmware to export a log of | 85 | This entry allows the firmware to export a log of |
86 | events the system has taken. This information is | 86 | events the system has taken. This information is |
87 | typically backed by nvram, but the implementation | 87 | typically backed by nvram, but the implementation |
88 | details are abstracted by this table. This entries data | 88 | details are abstracted by this table. This entry's data |
89 | is exported in the directory: | 89 | is exported in the directory: |
90 | 90 | ||
91 | /sys/firmware/dmi/entries/15-0/system_event_log | 91 | /sys/firmware/dmi/entries/15-0/system_event_log |
diff --git a/Documentation/ABI/testing/sysfs-firmware-gsmi b/Documentation/ABI/testing/sysfs-firmware-gsmi new file mode 100644 index 000000000000..0faa0aaf4b6a --- /dev/null +++ b/Documentation/ABI/testing/sysfs-firmware-gsmi | |||
@@ -0,0 +1,58 @@ | |||
1 | What: /sys/firmware/gsmi | ||
2 | Date: March 2011 | ||
3 | Contact: Mike Waychison <mikew@google.com> | ||
4 | Description: | ||
5 | Some servers used internally at Google have firmware | ||
6 | that provides callback functionality via explicit SMI | ||
7 | triggers. Some of the callbacks are similar to those | ||
8 | provided by the EFI runtime services page, but due to | ||
9 | historical reasons this different entry-point has been | ||
10 | used. | ||
11 | |||
12 | The gsmi driver implements the kernel's abstraction for | ||
13 | these firmware callbacks. Currently, this functionality | ||
14 | is limited to handling the system event log and getting | ||
15 | access to EFI-style variables stored in nvram. | ||
16 | |||
17 | Layout: | ||
18 | |||
19 | /sys/firmware/gsmi/vars: | ||
20 | |||
21 | This directory has the same layout (and | ||
22 | underlying implementation as /sys/firmware/efi/vars. | ||
23 | See Documentation/ABI/*/sysfs-firmware-efi-vars | ||
24 | for more information on how to interact with | ||
25 | this structure. | ||
26 | |||
27 | /sys/firmware/gsmi/append_to_eventlog - write-only: | ||
28 | |||
29 | This file takes a binary blob and passes it onto | ||
30 | the firmware to be timestamped and appended to | ||
31 | the system eventlog. The binary format is | ||
32 | interpreted by the firmware and may change from | ||
33 | platform to platform. The only kernel-enforced | ||
34 | requirement is that the blob be prefixed with a | ||
35 | 32bit host-endian type used as part of the | ||
36 | firmware call. | ||
37 | |||
38 | /sys/firmware/gsmi/clear_config - write-only: | ||
39 | |||
40 | Writing any value to this file will cause the | ||
41 | entire firmware configuration to be reset to | ||
42 | "factory defaults". Callers should assume that | ||
43 | a reboot is required for the configuration to be | ||
44 | cleared. | ||
45 | |||
46 | /sys/firmware/gsmi/clear_eventlog - write-only: | ||
47 | |||
48 | This file is used to clear out a portion/the | ||
49 | whole of the system event log. Values written | ||
50 | should be values between 1 and 100 inclusive (in | ||
51 | ASCII) representing the fraction of the log to | ||
52 | clear. Not all platforms support fractional | ||
53 | clearing though, and this writes to this file | ||
54 | will error out if the firmware doesn't like your | ||
55 | submitted fraction. | ||
56 | |||
57 | Callers should assume that a reboot is needed | ||
58 | for this operation to complete. | ||
diff --git a/Documentation/ABI/testing/sysfs-firmware-log b/Documentation/ABI/testing/sysfs-firmware-log new file mode 100644 index 000000000000..9b58e7c5365f --- /dev/null +++ b/Documentation/ABI/testing/sysfs-firmware-log | |||
@@ -0,0 +1,7 @@ | |||
1 | What: /sys/firmware/log | ||
2 | Date: February 2011 | ||
3 | Contact: Mike Waychison <mikew@google.com> | ||
4 | Description: | ||
5 | The /sys/firmware/log is a binary file that represents a | ||
6 | read-only copy of the firmware's log if one is | ||
7 | available. | ||
diff --git a/Documentation/ABI/testing/sysfs-kernel-fscaps b/Documentation/ABI/testing/sysfs-kernel-fscaps new file mode 100644 index 000000000000..50a3033b5e15 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-kernel-fscaps | |||
@@ -0,0 +1,8 @@ | |||
1 | What: /sys/kernel/fscaps | ||
2 | Date: February 2011 | ||
3 | KernelVersion: 2.6.38 | ||
4 | Contact: Ludwig Nussel <ludwig.nussel@suse.de> | ||
5 | Description | ||
6 | Shows whether file system capabilities are honored | ||
7 | when executing a binary | ||
8 | |||
diff --git a/Documentation/ABI/testing/sysfs-power b/Documentation/ABI/testing/sysfs-power index 194ca446ac28..b464d12761ba 100644 --- a/Documentation/ABI/testing/sysfs-power +++ b/Documentation/ABI/testing/sysfs-power | |||
@@ -158,3 +158,17 @@ Description: | |||
158 | successful, will make the kernel abort a subsequent transition | 158 | successful, will make the kernel abort a subsequent transition |
159 | to a sleep state if any wakeup events are reported after the | 159 | to a sleep state if any wakeup events are reported after the |
160 | write has returned. | 160 | write has returned. |
161 | |||
162 | What: /sys/power/reserved_size | ||
163 | Date: May 2011 | ||
164 | Contact: Rafael J. Wysocki <rjw@sisk.pl> | ||
165 | Description: | ||
166 | The /sys/power/reserved_size file allows user space to control | ||
167 | the amount of memory reserved for allocations made by device | ||
168 | drivers during the "device freeze" stage of hibernation. It can | ||
169 | be written a string representing a non-negative integer that | ||
170 | will be used as the amount of memory to reserve for allocations | ||
171 | made by device drivers' "freeze" callbacks, in bytes. | ||
172 | |||
173 | Reading from this file will display the current value, which is | ||
174 | set to 1 MB by default. | ||
diff --git a/Documentation/DocBook/device-drivers.tmpl b/Documentation/DocBook/device-drivers.tmpl index 36f63d4a0a06..b638e50cf8f6 100644 --- a/Documentation/DocBook/device-drivers.tmpl +++ b/Documentation/DocBook/device-drivers.tmpl | |||
@@ -96,10 +96,10 @@ X!Iinclude/linux/kobject.h | |||
96 | 96 | ||
97 | <chapter id="devdrivers"> | 97 | <chapter id="devdrivers"> |
98 | <title>Device drivers infrastructure</title> | 98 | <title>Device drivers infrastructure</title> |
99 | <sect1><title>The Basic Device Driver-Model Structures </title> | ||
100 | !Iinclude/linux/device.h | ||
101 | </sect1> | ||
99 | <sect1><title>Device Drivers Base</title> | 102 | <sect1><title>Device Drivers Base</title> |
100 | <!-- | ||
101 | X!Iinclude/linux/device.h | ||
102 | --> | ||
103 | !Edrivers/base/driver.c | 103 | !Edrivers/base/driver.c |
104 | !Edrivers/base/core.c | 104 | !Edrivers/base/core.c |
105 | !Edrivers/base/class.c | 105 | !Edrivers/base/class.c |
diff --git a/Documentation/DocBook/genericirq.tmpl b/Documentation/DocBook/genericirq.tmpl index fb10fd08c05c..b3422341d65c 100644 --- a/Documentation/DocBook/genericirq.tmpl +++ b/Documentation/DocBook/genericirq.tmpl | |||
@@ -191,8 +191,8 @@ | |||
191 | <para> | 191 | <para> |
192 | Whenever an interrupt triggers, the lowlevel arch code calls into | 192 | Whenever an interrupt triggers, the lowlevel arch code calls into |
193 | the generic interrupt code by calling desc->handle_irq(). | 193 | the generic interrupt code by calling desc->handle_irq(). |
194 | This highlevel IRQ handling function only uses desc->chip primitives | 194 | This highlevel IRQ handling function only uses desc->irq_data.chip |
195 | referenced by the assigned chip descriptor structure. | 195 | primitives referenced by the assigned chip descriptor structure. |
196 | </para> | 196 | </para> |
197 | </sect1> | 197 | </sect1> |
198 | <sect1 id="Highlevel_Driver_API"> | 198 | <sect1 id="Highlevel_Driver_API"> |
@@ -206,11 +206,11 @@ | |||
206 | <listitem><para>enable_irq()</para></listitem> | 206 | <listitem><para>enable_irq()</para></listitem> |
207 | <listitem><para>disable_irq_nosync() (SMP only)</para></listitem> | 207 | <listitem><para>disable_irq_nosync() (SMP only)</para></listitem> |
208 | <listitem><para>synchronize_irq() (SMP only)</para></listitem> | 208 | <listitem><para>synchronize_irq() (SMP only)</para></listitem> |
209 | <listitem><para>set_irq_type()</para></listitem> | 209 | <listitem><para>irq_set_irq_type()</para></listitem> |
210 | <listitem><para>set_irq_wake()</para></listitem> | 210 | <listitem><para>irq_set_irq_wake()</para></listitem> |
211 | <listitem><para>set_irq_data()</para></listitem> | 211 | <listitem><para>irq_set_handler_data()</para></listitem> |
212 | <listitem><para>set_irq_chip()</para></listitem> | 212 | <listitem><para>irq_set_chip()</para></listitem> |
213 | <listitem><para>set_irq_chip_data()</para></listitem> | 213 | <listitem><para>irq_set_chip_data()</para></listitem> |
214 | </itemizedlist> | 214 | </itemizedlist> |
215 | See the autogenerated function documentation for details. | 215 | See the autogenerated function documentation for details. |
216 | </para> | 216 | </para> |
@@ -225,6 +225,8 @@ | |||
225 | <listitem><para>handle_fasteoi_irq</para></listitem> | 225 | <listitem><para>handle_fasteoi_irq</para></listitem> |
226 | <listitem><para>handle_simple_irq</para></listitem> | 226 | <listitem><para>handle_simple_irq</para></listitem> |
227 | <listitem><para>handle_percpu_irq</para></listitem> | 227 | <listitem><para>handle_percpu_irq</para></listitem> |
228 | <listitem><para>handle_edge_eoi_irq</para></listitem> | ||
229 | <listitem><para>handle_bad_irq</para></listitem> | ||
228 | </itemizedlist> | 230 | </itemizedlist> |
229 | The interrupt flow handlers (either predefined or architecture | 231 | The interrupt flow handlers (either predefined or architecture |
230 | specific) are assigned to specific interrupts by the architecture | 232 | specific) are assigned to specific interrupts by the architecture |
@@ -241,13 +243,13 @@ | |||
241 | <programlisting> | 243 | <programlisting> |
242 | default_enable(struct irq_data *data) | 244 | default_enable(struct irq_data *data) |
243 | { | 245 | { |
244 | desc->chip->irq_unmask(data); | 246 | desc->irq_data.chip->irq_unmask(data); |
245 | } | 247 | } |
246 | 248 | ||
247 | default_disable(struct irq_data *data) | 249 | default_disable(struct irq_data *data) |
248 | { | 250 | { |
249 | if (!delay_disable(data)) | 251 | if (!delay_disable(data)) |
250 | desc->chip->irq_mask(data); | 252 | desc->irq_data.chip->irq_mask(data); |
251 | } | 253 | } |
252 | 254 | ||
253 | default_ack(struct irq_data *data) | 255 | default_ack(struct irq_data *data) |
@@ -284,9 +286,9 @@ noop(struct irq_data *data)) | |||
284 | <para> | 286 | <para> |
285 | The following control flow is implemented (simplified excerpt): | 287 | The following control flow is implemented (simplified excerpt): |
286 | <programlisting> | 288 | <programlisting> |
287 | desc->chip->irq_mask(); | 289 | desc->irq_data.chip->irq_mask_ack(); |
288 | handle_IRQ_event(desc->action); | 290 | handle_irq_event(desc->action); |
289 | desc->chip->irq_unmask(); | 291 | desc->irq_data.chip->irq_unmask(); |
290 | </programlisting> | 292 | </programlisting> |
291 | </para> | 293 | </para> |
292 | </sect3> | 294 | </sect3> |
@@ -300,8 +302,8 @@ desc->chip->irq_unmask(); | |||
300 | <para> | 302 | <para> |
301 | The following control flow is implemented (simplified excerpt): | 303 | The following control flow is implemented (simplified excerpt): |
302 | <programlisting> | 304 | <programlisting> |
303 | handle_IRQ_event(desc->action); | 305 | handle_irq_event(desc->action); |
304 | desc->chip->irq_eoi(); | 306 | desc->irq_data.chip->irq_eoi(); |
305 | </programlisting> | 307 | </programlisting> |
306 | </para> | 308 | </para> |
307 | </sect3> | 309 | </sect3> |
@@ -315,17 +317,17 @@ desc->chip->irq_eoi(); | |||
315 | The following control flow is implemented (simplified excerpt): | 317 | The following control flow is implemented (simplified excerpt): |
316 | <programlisting> | 318 | <programlisting> |
317 | if (desc->status & running) { | 319 | if (desc->status & running) { |
318 | desc->chip->irq_mask(); | 320 | desc->irq_data.chip->irq_mask_ack(); |
319 | desc->status |= pending | masked; | 321 | desc->status |= pending | masked; |
320 | return; | 322 | return; |
321 | } | 323 | } |
322 | desc->chip->irq_ack(); | 324 | desc->irq_data.chip->irq_ack(); |
323 | desc->status |= running; | 325 | desc->status |= running; |
324 | do { | 326 | do { |
325 | if (desc->status & masked) | 327 | if (desc->status & masked) |
326 | desc->chip->irq_unmask(); | 328 | desc->irq_data.chip->irq_unmask(); |
327 | desc->status &= ~pending; | 329 | desc->status &= ~pending; |
328 | handle_IRQ_event(desc->action); | 330 | handle_irq_event(desc->action); |
329 | } while (status & pending); | 331 | } while (status & pending); |
330 | desc->status &= ~running; | 332 | desc->status &= ~running; |
331 | </programlisting> | 333 | </programlisting> |
@@ -344,7 +346,7 @@ desc->status &= ~running; | |||
344 | <para> | 346 | <para> |
345 | The following control flow is implemented (simplified excerpt): | 347 | The following control flow is implemented (simplified excerpt): |
346 | <programlisting> | 348 | <programlisting> |
347 | handle_IRQ_event(desc->action); | 349 | handle_irq_event(desc->action); |
348 | </programlisting> | 350 | </programlisting> |
349 | </para> | 351 | </para> |
350 | </sect3> | 352 | </sect3> |
@@ -362,12 +364,29 @@ handle_IRQ_event(desc->action); | |||
362 | <para> | 364 | <para> |
363 | The following control flow is implemented (simplified excerpt): | 365 | The following control flow is implemented (simplified excerpt): |
364 | <programlisting> | 366 | <programlisting> |
365 | handle_IRQ_event(desc->action); | 367 | if (desc->irq_data.chip->irq_ack) |
366 | if (desc->chip->irq_eoi) | 368 | desc->irq_data.chip->irq_ack(); |
367 | desc->chip->irq_eoi(); | 369 | handle_irq_event(desc->action); |
370 | if (desc->irq_data.chip->irq_eoi) | ||
371 | desc->irq_data.chip->irq_eoi(); | ||
368 | </programlisting> | 372 | </programlisting> |
369 | </para> | 373 | </para> |
370 | </sect3> | 374 | </sect3> |
375 | <sect3 id="EOI_Edge_IRQ_flow_handler"> | ||
376 | <title>EOI Edge IRQ flow handler</title> | ||
377 | <para> | ||
378 | handle_edge_eoi_irq provides an abnomination of the edge | ||
379 | handler which is solely used to tame a badly wreckaged | ||
380 | irq controller on powerpc/cell. | ||
381 | </para> | ||
382 | </sect3> | ||
383 | <sect3 id="BAD_IRQ_flow_handler"> | ||
384 | <title>Bad IRQ flow handler</title> | ||
385 | <para> | ||
386 | handle_bad_irq is used for spurious interrupts which | ||
387 | have no real handler assigned.. | ||
388 | </para> | ||
389 | </sect3> | ||
371 | </sect2> | 390 | </sect2> |
372 | <sect2 id="Quirks_and_optimizations"> | 391 | <sect2 id="Quirks_and_optimizations"> |
373 | <title>Quirks and optimizations</title> | 392 | <title>Quirks and optimizations</title> |
@@ -410,6 +429,7 @@ if (desc->chip->irq_eoi) | |||
410 | <listitem><para>irq_mask_ack() - Optional, recommended for performance</para></listitem> | 429 | <listitem><para>irq_mask_ack() - Optional, recommended for performance</para></listitem> |
411 | <listitem><para>irq_mask()</para></listitem> | 430 | <listitem><para>irq_mask()</para></listitem> |
412 | <listitem><para>irq_unmask()</para></listitem> | 431 | <listitem><para>irq_unmask()</para></listitem> |
432 | <listitem><para>irq_eoi() - Optional, required for eoi flow handlers</para></listitem> | ||
413 | <listitem><para>irq_retrigger() - Optional</para></listitem> | 433 | <listitem><para>irq_retrigger() - Optional</para></listitem> |
414 | <listitem><para>irq_set_type() - Optional</para></listitem> | 434 | <listitem><para>irq_set_type() - Optional</para></listitem> |
415 | <listitem><para>irq_set_wake() - Optional</para></listitem> | 435 | <listitem><para>irq_set_wake() - Optional</para></listitem> |
@@ -424,32 +444,24 @@ if (desc->chip->irq_eoi) | |||
424 | <chapter id="doirq"> | 444 | <chapter id="doirq"> |
425 | <title>__do_IRQ entry point</title> | 445 | <title>__do_IRQ entry point</title> |
426 | <para> | 446 | <para> |
427 | The original implementation __do_IRQ() is an alternative entry | 447 | The original implementation __do_IRQ() was an alternative entry |
428 | point for all types of interrupts. | 448 | point for all types of interrupts. It not longer exists. |
429 | </para> | 449 | </para> |
430 | <para> | 450 | <para> |
431 | This handler turned out to be not suitable for all | 451 | This handler turned out to be not suitable for all |
432 | interrupt hardware and was therefore reimplemented with split | 452 | interrupt hardware and was therefore reimplemented with split |
433 | functionality for egde/level/simple/percpu interrupts. This is not | 453 | functionality for edge/level/simple/percpu interrupts. This is not |
434 | only a functional optimization. It also shortens code paths for | 454 | only a functional optimization. It also shortens code paths for |
435 | interrupts. | 455 | interrupts. |
436 | </para> | 456 | </para> |
437 | <para> | ||
438 | To make use of the split implementation, replace the call to | ||
439 | __do_IRQ by a call to desc->handle_irq() and associate | ||
440 | the appropriate handler function to desc->handle_irq(). | ||
441 | In most cases the generic handler implementations should | ||
442 | be sufficient. | ||
443 | </para> | ||
444 | </chapter> | 457 | </chapter> |
445 | 458 | ||
446 | <chapter id="locking"> | 459 | <chapter id="locking"> |
447 | <title>Locking on SMP</title> | 460 | <title>Locking on SMP</title> |
448 | <para> | 461 | <para> |
449 | The locking of chip registers is up to the architecture that | 462 | The locking of chip registers is up to the architecture that |
450 | defines the chip primitives. There is a chip->lock field that can be used | 463 | defines the chip primitives. The per-irq structure is |
451 | for serialization, but the generic layer does not touch it. The per-irq | 464 | protected via desc->lock, by the generic layer. |
452 | structure is protected via desc->lock, by the generic layer. | ||
453 | </para> | 465 | </para> |
454 | </chapter> | 466 | </chapter> |
455 | <chapter id="structs"> | 467 | <chapter id="structs"> |
diff --git a/Documentation/DocBook/media-entities.tmpl b/Documentation/DocBook/media-entities.tmpl index 5d259c632cdf..fea63b45471a 100644 --- a/Documentation/DocBook/media-entities.tmpl +++ b/Documentation/DocBook/media-entities.tmpl | |||
@@ -294,6 +294,7 @@ | |||
294 | <!ENTITY sub-srggb10 SYSTEM "v4l/pixfmt-srggb10.xml"> | 294 | <!ENTITY sub-srggb10 SYSTEM "v4l/pixfmt-srggb10.xml"> |
295 | <!ENTITY sub-srggb8 SYSTEM "v4l/pixfmt-srggb8.xml"> | 295 | <!ENTITY sub-srggb8 SYSTEM "v4l/pixfmt-srggb8.xml"> |
296 | <!ENTITY sub-y10 SYSTEM "v4l/pixfmt-y10.xml"> | 296 | <!ENTITY sub-y10 SYSTEM "v4l/pixfmt-y10.xml"> |
297 | <!ENTITY sub-y12 SYSTEM "v4l/pixfmt-y12.xml"> | ||
297 | <!ENTITY sub-pixfmt SYSTEM "v4l/pixfmt.xml"> | 298 | <!ENTITY sub-pixfmt SYSTEM "v4l/pixfmt.xml"> |
298 | <!ENTITY sub-cropcap SYSTEM "v4l/vidioc-cropcap.xml"> | 299 | <!ENTITY sub-cropcap SYSTEM "v4l/vidioc-cropcap.xml"> |
299 | <!ENTITY sub-dbg-g-register SYSTEM "v4l/vidioc-dbg-g-register.xml"> | 300 | <!ENTITY sub-dbg-g-register SYSTEM "v4l/vidioc-dbg-g-register.xml"> |
diff --git a/Documentation/DocBook/v4l/media-ioc-setup-link.xml b/Documentation/DocBook/v4l/media-ioc-setup-link.xml index 2331e76ded17..cec97af4dab4 100644 --- a/Documentation/DocBook/v4l/media-ioc-setup-link.xml +++ b/Documentation/DocBook/v4l/media-ioc-setup-link.xml | |||
@@ -34,7 +34,7 @@ | |||
34 | <varlistentry> | 34 | <varlistentry> |
35 | <term><parameter>request</parameter></term> | 35 | <term><parameter>request</parameter></term> |
36 | <listitem> | 36 | <listitem> |
37 | <para>MEDIA_IOC_ENUM_LINKS</para> | 37 | <para>MEDIA_IOC_SETUP_LINK</para> |
38 | </listitem> | 38 | </listitem> |
39 | </varlistentry> | 39 | </varlistentry> |
40 | <varlistentry> | 40 | <varlistentry> |
diff --git a/Documentation/DocBook/v4l/pixfmt-y12.xml b/Documentation/DocBook/v4l/pixfmt-y12.xml new file mode 100644 index 000000000000..ff417b858cc9 --- /dev/null +++ b/Documentation/DocBook/v4l/pixfmt-y12.xml | |||
@@ -0,0 +1,79 @@ | |||
1 | <refentry id="V4L2-PIX-FMT-Y12"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>V4L2_PIX_FMT_Y12 ('Y12 ')</refentrytitle> | ||
4 | &manvol; | ||
5 | </refmeta> | ||
6 | <refnamediv> | ||
7 | <refname><constant>V4L2_PIX_FMT_Y12</constant></refname> | ||
8 | <refpurpose>Grey-scale image</refpurpose> | ||
9 | </refnamediv> | ||
10 | <refsect1> | ||
11 | <title>Description</title> | ||
12 | |||
13 | <para>This is a grey-scale image with a depth of 12 bits per pixel. Pixels | ||
14 | are stored in 16-bit words with unused high bits padded with 0. The least | ||
15 | significant byte is stored at lower memory addresses (little-endian).</para> | ||
16 | |||
17 | <example> | ||
18 | <title><constant>V4L2_PIX_FMT_Y12</constant> 4 × 4 | ||
19 | pixel image</title> | ||
20 | |||
21 | <formalpara> | ||
22 | <title>Byte Order.</title> | ||
23 | <para>Each cell is one byte. | ||
24 | <informaltable frame="none"> | ||
25 | <tgroup cols="9" align="center"> | ||
26 | <colspec align="left" colwidth="2*" /> | ||
27 | <tbody valign="top"> | ||
28 | <row> | ||
29 | <entry>start + 0:</entry> | ||
30 | <entry>Y'<subscript>00low</subscript></entry> | ||
31 | <entry>Y'<subscript>00high</subscript></entry> | ||
32 | <entry>Y'<subscript>01low</subscript></entry> | ||
33 | <entry>Y'<subscript>01high</subscript></entry> | ||
34 | <entry>Y'<subscript>02low</subscript></entry> | ||
35 | <entry>Y'<subscript>02high</subscript></entry> | ||
36 | <entry>Y'<subscript>03low</subscript></entry> | ||
37 | <entry>Y'<subscript>03high</subscript></entry> | ||
38 | </row> | ||
39 | <row> | ||
40 | <entry>start + 8:</entry> | ||
41 | <entry>Y'<subscript>10low</subscript></entry> | ||
42 | <entry>Y'<subscript>10high</subscript></entry> | ||
43 | <entry>Y'<subscript>11low</subscript></entry> | ||
44 | <entry>Y'<subscript>11high</subscript></entry> | ||
45 | <entry>Y'<subscript>12low</subscript></entry> | ||
46 | <entry>Y'<subscript>12high</subscript></entry> | ||
47 | <entry>Y'<subscript>13low</subscript></entry> | ||
48 | <entry>Y'<subscript>13high</subscript></entry> | ||
49 | </row> | ||
50 | <row> | ||
51 | <entry>start + 16:</entry> | ||
52 | <entry>Y'<subscript>20low</subscript></entry> | ||
53 | <entry>Y'<subscript>20high</subscript></entry> | ||
54 | <entry>Y'<subscript>21low</subscript></entry> | ||
55 | <entry>Y'<subscript>21high</subscript></entry> | ||
56 | <entry>Y'<subscript>22low</subscript></entry> | ||
57 | <entry>Y'<subscript>22high</subscript></entry> | ||
58 | <entry>Y'<subscript>23low</subscript></entry> | ||
59 | <entry>Y'<subscript>23high</subscript></entry> | ||
60 | </row> | ||
61 | <row> | ||
62 | <entry>start + 24:</entry> | ||
63 | <entry>Y'<subscript>30low</subscript></entry> | ||
64 | <entry>Y'<subscript>30high</subscript></entry> | ||
65 | <entry>Y'<subscript>31low</subscript></entry> | ||
66 | <entry>Y'<subscript>31high</subscript></entry> | ||
67 | <entry>Y'<subscript>32low</subscript></entry> | ||
68 | <entry>Y'<subscript>32high</subscript></entry> | ||
69 | <entry>Y'<subscript>33low</subscript></entry> | ||
70 | <entry>Y'<subscript>33high</subscript></entry> | ||
71 | </row> | ||
72 | </tbody> | ||
73 | </tgroup> | ||
74 | </informaltable> | ||
75 | </para> | ||
76 | </formalpara> | ||
77 | </example> | ||
78 | </refsect1> | ||
79 | </refentry> | ||
diff --git a/Documentation/DocBook/v4l/pixfmt.xml b/Documentation/DocBook/v4l/pixfmt.xml index c6fdcbbd1b41..40af4beb48b9 100644 --- a/Documentation/DocBook/v4l/pixfmt.xml +++ b/Documentation/DocBook/v4l/pixfmt.xml | |||
@@ -696,6 +696,7 @@ information.</para> | |||
696 | &sub-packed-yuv; | 696 | &sub-packed-yuv; |
697 | &sub-grey; | 697 | &sub-grey; |
698 | &sub-y10; | 698 | &sub-y10; |
699 | &sub-y12; | ||
699 | &sub-y16; | 700 | &sub-y16; |
700 | &sub-yuyv; | 701 | &sub-yuyv; |
701 | &sub-uyvy; | 702 | &sub-uyvy; |
diff --git a/Documentation/DocBook/v4l/subdev-formats.xml b/Documentation/DocBook/v4l/subdev-formats.xml index 7041127d6dfc..d7ccd25edcc1 100644 --- a/Documentation/DocBook/v4l/subdev-formats.xml +++ b/Documentation/DocBook/v4l/subdev-formats.xml | |||
@@ -456,6 +456,23 @@ | |||
456 | <entry>b<subscript>1</subscript></entry> | 456 | <entry>b<subscript>1</subscript></entry> |
457 | <entry>b<subscript>0</subscript></entry> | 457 | <entry>b<subscript>0</subscript></entry> |
458 | </row> | 458 | </row> |
459 | <row id="V4L2-MBUS-FMT-SGBRG8-1X8"> | ||
460 | <entry>V4L2_MBUS_FMT_SGBRG8_1X8</entry> | ||
461 | <entry>0x3013</entry> | ||
462 | <entry></entry> | ||
463 | <entry>-</entry> | ||
464 | <entry>-</entry> | ||
465 | <entry>-</entry> | ||
466 | <entry>-</entry> | ||
467 | <entry>g<subscript>7</subscript></entry> | ||
468 | <entry>g<subscript>6</subscript></entry> | ||
469 | <entry>g<subscript>5</subscript></entry> | ||
470 | <entry>g<subscript>4</subscript></entry> | ||
471 | <entry>g<subscript>3</subscript></entry> | ||
472 | <entry>g<subscript>2</subscript></entry> | ||
473 | <entry>g<subscript>1</subscript></entry> | ||
474 | <entry>g<subscript>0</subscript></entry> | ||
475 | </row> | ||
459 | <row id="V4L2-MBUS-FMT-SGRBG8-1X8"> | 476 | <row id="V4L2-MBUS-FMT-SGRBG8-1X8"> |
460 | <entry>V4L2_MBUS_FMT_SGRBG8_1X8</entry> | 477 | <entry>V4L2_MBUS_FMT_SGRBG8_1X8</entry> |
461 | <entry>0x3002</entry> | 478 | <entry>0x3002</entry> |
@@ -473,6 +490,23 @@ | |||
473 | <entry>g<subscript>1</subscript></entry> | 490 | <entry>g<subscript>1</subscript></entry> |
474 | <entry>g<subscript>0</subscript></entry> | 491 | <entry>g<subscript>0</subscript></entry> |
475 | </row> | 492 | </row> |
493 | <row id="V4L2-MBUS-FMT-SRGGB8-1X8"> | ||
494 | <entry>V4L2_MBUS_FMT_SRGGB8_1X8</entry> | ||
495 | <entry>0x3014</entry> | ||
496 | <entry></entry> | ||
497 | <entry>-</entry> | ||
498 | <entry>-</entry> | ||
499 | <entry>-</entry> | ||
500 | <entry>-</entry> | ||
501 | <entry>r<subscript>7</subscript></entry> | ||
502 | <entry>r<subscript>6</subscript></entry> | ||
503 | <entry>r<subscript>5</subscript></entry> | ||
504 | <entry>r<subscript>4</subscript></entry> | ||
505 | <entry>r<subscript>3</subscript></entry> | ||
506 | <entry>r<subscript>2</subscript></entry> | ||
507 | <entry>r<subscript>1</subscript></entry> | ||
508 | <entry>r<subscript>0</subscript></entry> | ||
509 | </row> | ||
476 | <row id="V4L2-MBUS-FMT-SBGGR10-DPCM8-1X8"> | 510 | <row id="V4L2-MBUS-FMT-SBGGR10-DPCM8-1X8"> |
477 | <entry>V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8</entry> | 511 | <entry>V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8</entry> |
478 | <entry>0x300b</entry> | 512 | <entry>0x300b</entry> |
@@ -2159,6 +2193,31 @@ | |||
2159 | <entry>u<subscript>1</subscript></entry> | 2193 | <entry>u<subscript>1</subscript></entry> |
2160 | <entry>u<subscript>0</subscript></entry> | 2194 | <entry>u<subscript>0</subscript></entry> |
2161 | </row> | 2195 | </row> |
2196 | <row id="V4L2-MBUS-FMT-Y12-1X12"> | ||
2197 | <entry>V4L2_MBUS_FMT_Y12_1X12</entry> | ||
2198 | <entry>0x2013</entry> | ||
2199 | <entry></entry> | ||
2200 | <entry>-</entry> | ||
2201 | <entry>-</entry> | ||
2202 | <entry>-</entry> | ||
2203 | <entry>-</entry> | ||
2204 | <entry>-</entry> | ||
2205 | <entry>-</entry> | ||
2206 | <entry>-</entry> | ||
2207 | <entry>-</entry> | ||
2208 | <entry>y<subscript>11</subscript></entry> | ||
2209 | <entry>y<subscript>10</subscript></entry> | ||
2210 | <entry>y<subscript>9</subscript></entry> | ||
2211 | <entry>y<subscript>8</subscript></entry> | ||
2212 | <entry>y<subscript>7</subscript></entry> | ||
2213 | <entry>y<subscript>6</subscript></entry> | ||
2214 | <entry>y<subscript>5</subscript></entry> | ||
2215 | <entry>y<subscript>4</subscript></entry> | ||
2216 | <entry>y<subscript>3</subscript></entry> | ||
2217 | <entry>y<subscript>2</subscript></entry> | ||
2218 | <entry>y<subscript>1</subscript></entry> | ||
2219 | <entry>y<subscript>0</subscript></entry> | ||
2220 | </row> | ||
2162 | <row id="V4L2-MBUS-FMT-UYVY8-1X16"> | 2221 | <row id="V4L2-MBUS-FMT-UYVY8-1X16"> |
2163 | <entry>V4L2_MBUS_FMT_UYVY8_1X16</entry> | 2222 | <entry>V4L2_MBUS_FMT_UYVY8_1X16</entry> |
2164 | <entry>0x200f</entry> | 2223 | <entry>0x200f</entry> |
diff --git a/Documentation/RCU/00-INDEX b/Documentation/RCU/00-INDEX index 71b6f500ddb9..1d7a885761f5 100644 --- a/Documentation/RCU/00-INDEX +++ b/Documentation/RCU/00-INDEX | |||
@@ -21,7 +21,7 @@ rcu.txt | |||
21 | RTFP.txt | 21 | RTFP.txt |
22 | - List of RCU papers (bibliography) going back to 1980. | 22 | - List of RCU papers (bibliography) going back to 1980. |
23 | stallwarn.txt | 23 | stallwarn.txt |
24 | - RCU CPU stall warnings (CONFIG_RCU_CPU_STALL_DETECTOR) | 24 | - RCU CPU stall warnings (module parameter rcu_cpu_stall_suppress) |
25 | torture.txt | 25 | torture.txt |
26 | - RCU Torture Test Operation (CONFIG_RCU_TORTURE_TEST) | 26 | - RCU Torture Test Operation (CONFIG_RCU_TORTURE_TEST) |
27 | trace.txt | 27 | trace.txt |
diff --git a/Documentation/RCU/stallwarn.txt b/Documentation/RCU/stallwarn.txt index 862c08ef1fde..4e959208f736 100644 --- a/Documentation/RCU/stallwarn.txt +++ b/Documentation/RCU/stallwarn.txt | |||
@@ -1,22 +1,25 @@ | |||
1 | Using RCU's CPU Stall Detector | 1 | Using RCU's CPU Stall Detector |
2 | 2 | ||
3 | The CONFIG_RCU_CPU_STALL_DETECTOR kernel config parameter enables | 3 | The rcu_cpu_stall_suppress module parameter enables RCU's CPU stall |
4 | RCU's CPU stall detector, which detects conditions that unduly delay | 4 | detector, which detects conditions that unduly delay RCU grace periods. |
5 | RCU grace periods. The stall detector's idea of what constitutes | 5 | This module parameter enables CPU stall detection by default, but |
6 | "unduly delayed" is controlled by a set of C preprocessor macros: | 6 | may be overridden via boot-time parameter or at runtime via sysfs. |
7 | The stall detector's idea of what constitutes "unduly delayed" is | ||
8 | controlled by a set of kernel configuration variables and cpp macros: | ||
7 | 9 | ||
8 | RCU_SECONDS_TILL_STALL_CHECK | 10 | CONFIG_RCU_CPU_STALL_TIMEOUT |
9 | 11 | ||
10 | This macro defines the period of time that RCU will wait from | 12 | This kernel configuration parameter defines the period of time |
11 | the beginning of a grace period until it issues an RCU CPU | 13 | that RCU will wait from the beginning of a grace period until it |
12 | stall warning. This time period is normally ten seconds. | 14 | issues an RCU CPU stall warning. This time period is normally |
15 | ten seconds. | ||
13 | 16 | ||
14 | RCU_SECONDS_TILL_STALL_RECHECK | 17 | RCU_SECONDS_TILL_STALL_RECHECK |
15 | 18 | ||
16 | This macro defines the period of time that RCU will wait after | 19 | This macro defines the period of time that RCU will wait after |
17 | issuing a stall warning until it issues another stall warning | 20 | issuing a stall warning until it issues another stall warning |
18 | for the same stall. This time period is normally set to thirty | 21 | for the same stall. This time period is normally set to three |
19 | seconds. | 22 | times the check interval plus thirty seconds. |
20 | 23 | ||
21 | RCU_STALL_RAT_DELAY | 24 | RCU_STALL_RAT_DELAY |
22 | 25 | ||
diff --git a/Documentation/RCU/trace.txt b/Documentation/RCU/trace.txt index 6a8c73f55b80..c078ad48f7a1 100644 --- a/Documentation/RCU/trace.txt +++ b/Documentation/RCU/trace.txt | |||
@@ -10,34 +10,46 @@ for rcutree and next for rcutiny. | |||
10 | 10 | ||
11 | CONFIG_TREE_RCU and CONFIG_TREE_PREEMPT_RCU debugfs Files and Formats | 11 | CONFIG_TREE_RCU and CONFIG_TREE_PREEMPT_RCU debugfs Files and Formats |
12 | 12 | ||
13 | These implementations of RCU provides five debugfs files under the | 13 | These implementations of RCU provides several debugfs files under the |
14 | top-level directory RCU: rcu/rcudata (which displays fields in struct | 14 | top-level directory "rcu": |
15 | rcu_data), rcu/rcudata.csv (which is a .csv spreadsheet version of | 15 | |
16 | rcu/rcudata), rcu/rcugp (which displays grace-period counters), | 16 | rcu/rcudata: |
17 | rcu/rcuhier (which displays the struct rcu_node hierarchy), and | 17 | Displays fields in struct rcu_data. |
18 | rcu/rcu_pending (which displays counts of the reasons that the | 18 | rcu/rcudata.csv: |
19 | rcu_pending() function decided that there was core RCU work to do). | 19 | Comma-separated values spreadsheet version of rcudata. |
20 | rcu/rcugp: | ||
21 | Displays grace-period counters. | ||
22 | rcu/rcuhier: | ||
23 | Displays the struct rcu_node hierarchy. | ||
24 | rcu/rcu_pending: | ||
25 | Displays counts of the reasons rcu_pending() decided that RCU had | ||
26 | work to do. | ||
27 | rcu/rcutorture: | ||
28 | Displays rcutorture test progress. | ||
29 | rcu/rcuboost: | ||
30 | Displays RCU boosting statistics. Only present if | ||
31 | CONFIG_RCU_BOOST=y. | ||
20 | 32 | ||
21 | The output of "cat rcu/rcudata" looks as follows: | 33 | The output of "cat rcu/rcudata" looks as follows: |
22 | 34 | ||
23 | rcu_sched: | 35 | rcu_sched: |
24 | 0 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=10951/1 dn=0 df=1101 of=0 ri=36 ql=0 b=10 | 36 | 0 c=20972 g=20973 pq=1 pqc=20972 qp=0 dt=545/1/0 df=50 of=0 ri=0 ql=163 qs=NRW. kt=0/W/0 ktl=ebc3 b=10 ci=153737 co=0 ca=0 |
25 | 1 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=16117/1 dn=0 df=1015 of=0 ri=0 ql=0 b=10 | 37 | 1 c=20972 g=20973 pq=1 pqc=20972 qp=0 dt=967/1/0 df=58 of=0 ri=0 ql=634 qs=NRW. kt=0/W/1 ktl=58c b=10 ci=191037 co=0 ca=0 |
26 | 2 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=1445/1 dn=0 df=1839 of=0 ri=0 ql=0 b=10 | 38 | 2 c=20972 g=20973 pq=1 pqc=20972 qp=0 dt=1081/1/0 df=175 of=0 ri=0 ql=74 qs=N.W. kt=0/W/2 ktl=da94 b=10 ci=75991 co=0 ca=0 |
27 | 3 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=6681/1 dn=0 df=1545 of=0 ri=0 ql=0 b=10 | 39 | 3 c=20942 g=20943 pq=1 pqc=20942 qp=1 dt=1846/0/0 df=404 of=0 ri=0 ql=0 qs=.... kt=0/W/3 ktl=d1cd b=10 ci=72261 co=0 ca=0 |
28 | 4 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=1003/1 dn=0 df=1992 of=0 ri=0 ql=0 b=10 | 40 | 4 c=20972 g=20973 pq=1 pqc=20972 qp=0 dt=369/1/0 df=83 of=0 ri=0 ql=48 qs=N.W. kt=0/W/4 ktl=e0e7 b=10 ci=128365 co=0 ca=0 |
29 | 5 c=17829 g=17830 pq=1 pqc=17829 qp=1 dt=3887/1 dn=0 df=3331 of=0 ri=4 ql=2 b=10 | 41 | 5 c=20972 g=20973 pq=1 pqc=20972 qp=0 dt=381/1/0 df=64 of=0 ri=0 ql=169 qs=NRW. kt=0/W/5 ktl=fb2f b=10 ci=164360 co=0 ca=0 |
30 | 6 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=859/1 dn=0 df=3224 of=0 ri=0 ql=0 b=10 | 42 | 6 c=20972 g=20973 pq=1 pqc=20972 qp=0 dt=1037/1/0 df=183 of=0 ri=0 ql=62 qs=N.W. kt=0/W/6 ktl=d2ad b=10 ci=65663 co=0 ca=0 |
31 | 7 c=17829 g=17830 pq=0 pqc=17829 qp=1 dt=3761/1 dn=0 df=1818 of=0 ri=0 ql=2 b=10 | 43 | 7 c=20897 g=20897 pq=1 pqc=20896 qp=0 dt=1572/0/0 df=382 of=0 ri=0 ql=0 qs=.... kt=0/W/7 ktl=cf15 b=10 ci=75006 co=0 ca=0 |
32 | rcu_bh: | 44 | rcu_bh: |
33 | 0 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=10951/1 dn=0 df=0 of=0 ri=0 ql=0 b=10 | 45 | 0 c=1480 g=1480 pq=1 pqc=1479 qp=0 dt=545/1/0 df=6 of=0 ri=1 ql=0 qs=.... kt=0/W/0 ktl=ebc3 b=10 ci=0 co=0 ca=0 |
34 | 1 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=16117/1 dn=0 df=13 of=0 ri=0 ql=0 b=10 | 46 | 1 c=1480 g=1480 pq=1 pqc=1479 qp=0 dt=967/1/0 df=3 of=0 ri=1 ql=0 qs=.... kt=0/W/1 ktl=58c b=10 ci=151 co=0 ca=0 |
35 | 2 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=1445/1 dn=0 df=15 of=0 ri=0 ql=0 b=10 | 47 | 2 c=1480 g=1480 pq=1 pqc=1479 qp=0 dt=1081/1/0 df=6 of=0 ri=1 ql=0 qs=.... kt=0/W/2 ktl=da94 b=10 ci=0 co=0 ca=0 |
36 | 3 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=6681/1 dn=0 df=9 of=0 ri=0 ql=0 b=10 | 48 | 3 c=1480 g=1480 pq=1 pqc=1479 qp=0 dt=1846/0/0 df=8 of=0 ri=1 ql=0 qs=.... kt=0/W/3 ktl=d1cd b=10 ci=0 co=0 ca=0 |
37 | 4 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=1003/1 dn=0 df=15 of=0 ri=0 ql=0 b=10 | 49 | 4 c=1480 g=1480 pq=1 pqc=1479 qp=0 dt=369/1/0 df=6 of=0 ri=1 ql=0 qs=.... kt=0/W/4 ktl=e0e7 b=10 ci=0 co=0 ca=0 |
38 | 5 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=3887/1 dn=0 df=15 of=0 ri=0 ql=0 b=10 | 50 | 5 c=1480 g=1480 pq=1 pqc=1479 qp=0 dt=381/1/0 df=4 of=0 ri=1 ql=0 qs=.... kt=0/W/5 ktl=fb2f b=10 ci=0 co=0 ca=0 |
39 | 6 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=859/1 dn=0 df=15 of=0 ri=0 ql=0 b=10 | 51 | 6 c=1480 g=1480 pq=1 pqc=1479 qp=0 dt=1037/1/0 df=6 of=0 ri=1 ql=0 qs=.... kt=0/W/6 ktl=d2ad b=10 ci=0 co=0 ca=0 |
40 | 7 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=3761/1 dn=0 df=15 of=0 ri=0 ql=0 b=10 | 52 | 7 c=1474 g=1474 pq=1 pqc=1473 qp=0 dt=1572/0/0 df=8 of=0 ri=1 ql=0 qs=.... kt=0/W/7 ktl=cf15 b=10 ci=0 co=0 ca=0 |
41 | 53 | ||
42 | The first section lists the rcu_data structures for rcu_sched, the second | 54 | The first section lists the rcu_data structures for rcu_sched, the second |
43 | for rcu_bh. Note that CONFIG_TREE_PREEMPT_RCU kernels will have an | 55 | for rcu_bh. Note that CONFIG_TREE_PREEMPT_RCU kernels will have an |
@@ -52,17 +64,18 @@ o The number at the beginning of each line is the CPU number. | |||
52 | substantially larger than the number of actual CPUs. | 64 | substantially larger than the number of actual CPUs. |
53 | 65 | ||
54 | o "c" is the count of grace periods that this CPU believes have | 66 | o "c" is the count of grace periods that this CPU believes have |
55 | completed. CPUs in dynticks idle mode may lag quite a ways | 67 | completed. Offlined CPUs and CPUs in dynticks idle mode may |
56 | behind, for example, CPU 4 under "rcu_sched" above, which has | 68 | lag quite a ways behind, for example, CPU 6 under "rcu_sched" |
57 | slept through the past 25 RCU grace periods. It is not unusual | 69 | above, which has been offline through not quite 40,000 RCU grace |
58 | to see CPUs lagging by thousands of grace periods. | 70 | periods. It is not unusual to see CPUs lagging by thousands of |
71 | grace periods. | ||
59 | 72 | ||
60 | o "g" is the count of grace periods that this CPU believes have | 73 | o "g" is the count of grace periods that this CPU believes have |
61 | started. Again, CPUs in dynticks idle mode may lag behind. | 74 | started. Again, offlined CPUs and CPUs in dynticks idle mode |
62 | If the "c" and "g" values are equal, this CPU has already | 75 | may lag behind. If the "c" and "g" values are equal, this CPU |
63 | reported a quiescent state for the last RCU grace period that | 76 | has already reported a quiescent state for the last RCU grace |
64 | it is aware of, otherwise, the CPU believes that it owes RCU a | 77 | period that it is aware of, otherwise, the CPU believes that it |
65 | quiescent state. | 78 | owes RCU a quiescent state. |
66 | 79 | ||
67 | o "pq" indicates that this CPU has passed through a quiescent state | 80 | o "pq" indicates that this CPU has passed through a quiescent state |
68 | for the current grace period. It is possible for "pq" to be | 81 | for the current grace period. It is possible for "pq" to be |
@@ -81,7 +94,8 @@ o "pqc" indicates which grace period the last-observed quiescent | |||
81 | the next grace period! | 94 | the next grace period! |
82 | 95 | ||
83 | o "qp" indicates that RCU still expects a quiescent state from | 96 | o "qp" indicates that RCU still expects a quiescent state from |
84 | this CPU. | 97 | this CPU. Offlined CPUs and CPUs in dyntick idle mode might |
98 | well have qp=1, which is OK: RCU is still ignoring them. | ||
85 | 99 | ||
86 | o "dt" is the current value of the dyntick counter that is incremented | 100 | o "dt" is the current value of the dyntick counter that is incremented |
87 | when entering or leaving dynticks idle state, either by the | 101 | when entering or leaving dynticks idle state, either by the |
@@ -108,7 +122,7 @@ o "df" is the number of times that some other CPU has forced a | |||
108 | 122 | ||
109 | o "of" is the number of times that some other CPU has forced a | 123 | o "of" is the number of times that some other CPU has forced a |
110 | quiescent state on behalf of this CPU due to this CPU being | 124 | quiescent state on behalf of this CPU due to this CPU being |
111 | offline. In a perfect world, this might neve happen, but it | 125 | offline. In a perfect world, this might never happen, but it |
112 | turns out that offlining and onlining a CPU can take several grace | 126 | turns out that offlining and onlining a CPU can take several grace |
113 | periods, and so there is likely to be an extended period of time | 127 | periods, and so there is likely to be an extended period of time |
114 | when RCU believes that the CPU is online when it really is not. | 128 | when RCU believes that the CPU is online when it really is not. |
@@ -125,6 +139,62 @@ o "ql" is the number of RCU callbacks currently residing on | |||
125 | of what state they are in (new, waiting for grace period to | 139 | of what state they are in (new, waiting for grace period to |
126 | start, waiting for grace period to end, ready to invoke). | 140 | start, waiting for grace period to end, ready to invoke). |
127 | 141 | ||
142 | o "qs" gives an indication of the state of the callback queue | ||
143 | with four characters: | ||
144 | |||
145 | "N" Indicates that there are callbacks queued that are not | ||
146 | ready to be handled by the next grace period, and thus | ||
147 | will be handled by the grace period following the next | ||
148 | one. | ||
149 | |||
150 | "R" Indicates that there are callbacks queued that are | ||
151 | ready to be handled by the next grace period. | ||
152 | |||
153 | "W" Indicates that there are callbacks queued that are | ||
154 | waiting on the current grace period. | ||
155 | |||
156 | "D" Indicates that there are callbacks queued that have | ||
157 | already been handled by a prior grace period, and are | ||
158 | thus waiting to be invoked. Note that callbacks in | ||
159 | the process of being invoked are not counted here. | ||
160 | Callbacks in the process of being invoked are those | ||
161 | that have been removed from the rcu_data structures | ||
162 | queues by rcu_do_batch(), but which have not yet been | ||
163 | invoked. | ||
164 | |||
165 | If there are no callbacks in a given one of the above states, | ||
166 | the corresponding character is replaced by ".". | ||
167 | |||
168 | o "kt" is the per-CPU kernel-thread state. The digit preceding | ||
169 | the first slash is zero if there is no work pending and 1 | ||
170 | otherwise. The character between the first pair of slashes is | ||
171 | as follows: | ||
172 | |||
173 | "S" The kernel thread is stopped, in other words, all | ||
174 | CPUs corresponding to this rcu_node structure are | ||
175 | offline. | ||
176 | |||
177 | "R" The kernel thread is running. | ||
178 | |||
179 | "W" The kernel thread is waiting because there is no work | ||
180 | for it to do. | ||
181 | |||
182 | "O" The kernel thread is waiting because it has been | ||
183 | forced off of its designated CPU or because its | ||
184 | ->cpus_allowed mask permits it to run on other than | ||
185 | its designated CPU. | ||
186 | |||
187 | "Y" The kernel thread is yielding to avoid hogging CPU. | ||
188 | |||
189 | "?" Unknown value, indicates a bug. | ||
190 | |||
191 | The number after the final slash is the CPU that the kthread | ||
192 | is actually running on. | ||
193 | |||
194 | o "ktl" is the low-order 16 bits (in hexadecimal) of the count of | ||
195 | the number of times that this CPU's per-CPU kthread has gone | ||
196 | through its loop servicing invoke_rcu_cpu_kthread() requests. | ||
197 | |||
128 | o "b" is the batch limit for this CPU. If more than this number | 198 | o "b" is the batch limit for this CPU. If more than this number |
129 | of RCU callbacks is ready to invoke, then the remainder will | 199 | of RCU callbacks is ready to invoke, then the remainder will |
130 | be deferred. | 200 | be deferred. |
@@ -174,14 +244,14 @@ o "gpnum" is the number of grace periods that have started. It is | |||
174 | The output of "cat rcu/rcuhier" looks as follows, with very long lines: | 244 | The output of "cat rcu/rcuhier" looks as follows, with very long lines: |
175 | 245 | ||
176 | c=6902 g=6903 s=2 jfq=3 j=72c7 nfqs=13142/nfqsng=0(13142) fqlh=6 | 246 | c=6902 g=6903 s=2 jfq=3 j=72c7 nfqs=13142/nfqsng=0(13142) fqlh=6 |
177 | 1/1 .>. 0:127 ^0 | 247 | 1/1 ..>. 0:127 ^0 |
178 | 3/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3 | 248 | 3/3 ..>. 0:35 ^0 0/0 ..>. 36:71 ^1 0/0 ..>. 72:107 ^2 0/0 ..>. 108:127 ^3 |
179 | 3/3f .>. 0:5 ^0 2/3 .>. 6:11 ^1 0/0 .>. 12:17 ^2 0/0 .>. 18:23 ^3 0/0 .>. 24:29 ^4 0/0 .>. 30:35 ^5 0/0 .>. 36:41 ^0 0/0 .>. 42:47 ^1 0/0 .>. 48:53 ^2 0/0 .>. 54:59 ^3 0/0 .>. 60:65 ^4 0/0 .>. 66:71 ^5 0/0 .>. 72:77 ^0 0/0 .>. 78:83 ^1 0/0 .>. 84:89 ^2 0/0 .>. 90:95 ^3 0/0 .>. 96:101 ^4 0/0 .>. 102:107 ^5 0/0 .>. 108:113 ^0 0/0 .>. 114:119 ^1 0/0 .>. 120:125 ^2 0/0 .>. 126:127 ^3 | 249 | 3/3f ..>. 0:5 ^0 2/3 ..>. 6:11 ^1 0/0 ..>. 12:17 ^2 0/0 ..>. 18:23 ^3 0/0 ..>. 24:29 ^4 0/0 ..>. 30:35 ^5 0/0 ..>. 36:41 ^0 0/0 ..>. 42:47 ^1 0/0 ..>. 48:53 ^2 0/0 ..>. 54:59 ^3 0/0 ..>. 60:65 ^4 0/0 ..>. 66:71 ^5 0/0 ..>. 72:77 ^0 0/0 ..>. 78:83 ^1 0/0 ..>. 84:89 ^2 0/0 ..>. 90:95 ^3 0/0 ..>. 96:101 ^4 0/0 ..>. 102:107 ^5 0/0 ..>. 108:113 ^0 0/0 ..>. 114:119 ^1 0/0 ..>. 120:125 ^2 0/0 ..>. 126:127 ^3 |
180 | rcu_bh: | 250 | rcu_bh: |
181 | c=-226 g=-226 s=1 jfq=-5701 j=72c7 nfqs=88/nfqsng=0(88) fqlh=0 | 251 | c=-226 g=-226 s=1 jfq=-5701 j=72c7 nfqs=88/nfqsng=0(88) fqlh=0 |
182 | 0/1 .>. 0:127 ^0 | 252 | 0/1 ..>. 0:127 ^0 |
183 | 0/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3 | 253 | 0/3 ..>. 0:35 ^0 0/0 ..>. 36:71 ^1 0/0 ..>. 72:107 ^2 0/0 ..>. 108:127 ^3 |
184 | 0/3f .>. 0:5 ^0 0/3 .>. 6:11 ^1 0/0 .>. 12:17 ^2 0/0 .>. 18:23 ^3 0/0 .>. 24:29 ^4 0/0 .>. 30:35 ^5 0/0 .>. 36:41 ^0 0/0 .>. 42:47 ^1 0/0 .>. 48:53 ^2 0/0 .>. 54:59 ^3 0/0 .>. 60:65 ^4 0/0 .>. 66:71 ^5 0/0 .>. 72:77 ^0 0/0 .>. 78:83 ^1 0/0 .>. 84:89 ^2 0/0 .>. 90:95 ^3 0/0 .>. 96:101 ^4 0/0 .>. 102:107 ^5 0/0 .>. 108:113 ^0 0/0 .>. 114:119 ^1 0/0 .>. 120:125 ^2 0/0 .>. 126:127 ^3 | 254 | 0/3f ..>. 0:5 ^0 0/3 ..>. 6:11 ^1 0/0 ..>. 12:17 ^2 0/0 ..>. 18:23 ^3 0/0 ..>. 24:29 ^4 0/0 ..>. 30:35 ^5 0/0 ..>. 36:41 ^0 0/0 ..>. 42:47 ^1 0/0 ..>. 48:53 ^2 0/0 ..>. 54:59 ^3 0/0 ..>. 60:65 ^4 0/0 ..>. 66:71 ^5 0/0 ..>. 72:77 ^0 0/0 ..>. 78:83 ^1 0/0 ..>. 84:89 ^2 0/0 ..>. 90:95 ^3 0/0 ..>. 96:101 ^4 0/0 ..>. 102:107 ^5 0/0 ..>. 108:113 ^0 0/0 ..>. 114:119 ^1 0/0 ..>. 120:125 ^2 0/0 ..>. 126:127 ^3 |
185 | 255 | ||
186 | This is once again split into "rcu_sched" and "rcu_bh" portions, | 256 | This is once again split into "rcu_sched" and "rcu_bh" portions, |
187 | and CONFIG_TREE_PREEMPT_RCU kernels will again have an additional | 257 | and CONFIG_TREE_PREEMPT_RCU kernels will again have an additional |
@@ -240,13 +310,20 @@ o Each element of the form "1/1 0:127 ^0" represents one struct | |||
240 | current grace period. | 310 | current grace period. |
241 | 311 | ||
242 | o The characters separated by the ">" indicate the state | 312 | o The characters separated by the ">" indicate the state |
243 | of the blocked-tasks lists. A "T" preceding the ">" | 313 | of the blocked-tasks lists. A "G" preceding the ">" |
244 | indicates that at least one task blocked in an RCU | 314 | indicates that at least one task blocked in an RCU |
245 | read-side critical section blocks the current grace | 315 | read-side critical section blocks the current grace |
246 | period, while a "." preceding the ">" indicates otherwise. | 316 | period, while a "E" preceding the ">" indicates that |
247 | The character following the ">" indicates similarly for | 317 | at least one task blocked in an RCU read-side critical |
248 | the next grace period. A "T" should appear in this | 318 | section blocks the current expedited grace period. |
249 | field only for rcu-preempt. | 319 | A "T" character following the ">" indicates that at |
320 | least one task is blocked within an RCU read-side | ||
321 | critical section, regardless of whether any current | ||
322 | grace period (expedited or normal) is inconvenienced. | ||
323 | A "." character appears if the corresponding condition | ||
324 | does not hold, so that "..>." indicates that no tasks | ||
325 | are blocked. In contrast, "GE>T" indicates maximal | ||
326 | inconvenience from blocked tasks. | ||
250 | 327 | ||
251 | o The numbers separated by the ":" are the range of CPUs | 328 | o The numbers separated by the ":" are the range of CPUs |
252 | served by this struct rcu_node. This can be helpful | 329 | served by this struct rcu_node. This can be helpful |
@@ -328,6 +405,113 @@ o "nn" is the number of times that this CPU needed nothing. Alert | |||
328 | is due to short-circuit evaluation in rcu_pending(). | 405 | is due to short-circuit evaluation in rcu_pending(). |
329 | 406 | ||
330 | 407 | ||
408 | The output of "cat rcu/rcutorture" looks as follows: | ||
409 | |||
410 | rcutorture test sequence: 0 (test in progress) | ||
411 | rcutorture update version number: 615 | ||
412 | |||
413 | The first line shows the number of rcutorture tests that have completed | ||
414 | since boot. If a test is currently running, the "(test in progress)" | ||
415 | string will appear as shown above. The second line shows the number of | ||
416 | update cycles that the current test has started, or zero if there is | ||
417 | no test in progress. | ||
418 | |||
419 | |||
420 | The output of "cat rcu/rcuboost" looks as follows: | ||
421 | |||
422 | 0:5 tasks=.... kt=W ntb=0 neb=0 nnb=0 j=2f95 bt=300f | ||
423 | balk: nt=0 egt=989 bt=0 nb=0 ny=0 nos=16 | ||
424 | 6:7 tasks=.... kt=W ntb=0 neb=0 nnb=0 j=2f95 bt=300f | ||
425 | balk: nt=0 egt=225 bt=0 nb=0 ny=0 nos=6 | ||
426 | |||
427 | This information is output only for rcu_preempt. Each two-line entry | ||
428 | corresponds to a leaf rcu_node strcuture. The fields are as follows: | ||
429 | |||
430 | o "n:m" is the CPU-number range for the corresponding two-line | ||
431 | entry. In the sample output above, the first entry covers | ||
432 | CPUs zero through five and the second entry covers CPUs 6 | ||
433 | and 7. | ||
434 | |||
435 | o "tasks=TNEB" gives the state of the various segments of the | ||
436 | rnp->blocked_tasks list: | ||
437 | |||
438 | "T" This indicates that there are some tasks that blocked | ||
439 | while running on one of the corresponding CPUs while | ||
440 | in an RCU read-side critical section. | ||
441 | |||
442 | "N" This indicates that some of the blocked tasks are preventing | ||
443 | the current normal (non-expedited) grace period from | ||
444 | completing. | ||
445 | |||
446 | "E" This indicates that some of the blocked tasks are preventing | ||
447 | the current expedited grace period from completing. | ||
448 | |||
449 | "B" This indicates that some of the blocked tasks are in | ||
450 | need of RCU priority boosting. | ||
451 | |||
452 | Each character is replaced with "." if the corresponding | ||
453 | condition does not hold. | ||
454 | |||
455 | o "kt" is the state of the RCU priority-boosting kernel | ||
456 | thread associated with the corresponding rcu_node structure. | ||
457 | The state can be one of the following: | ||
458 | |||
459 | "S" The kernel thread is stopped, in other words, all | ||
460 | CPUs corresponding to this rcu_node structure are | ||
461 | offline. | ||
462 | |||
463 | "R" The kernel thread is running. | ||
464 | |||
465 | "W" The kernel thread is waiting because there is no work | ||
466 | for it to do. | ||
467 | |||
468 | "Y" The kernel thread is yielding to avoid hogging CPU. | ||
469 | |||
470 | "?" Unknown value, indicates a bug. | ||
471 | |||
472 | o "ntb" is the number of tasks boosted. | ||
473 | |||
474 | o "neb" is the number of tasks boosted in order to complete an | ||
475 | expedited grace period. | ||
476 | |||
477 | o "nnb" is the number of tasks boosted in order to complete a | ||
478 | normal (non-expedited) grace period. When boosting a task | ||
479 | that was blocking both an expedited and a normal grace period, | ||
480 | it is counted against the expedited total above. | ||
481 | |||
482 | o "j" is the low-order 16 bits of the jiffies counter in | ||
483 | hexadecimal. | ||
484 | |||
485 | o "bt" is the low-order 16 bits of the value that the jiffies | ||
486 | counter will have when we next start boosting, assuming that | ||
487 | the current grace period does not end beforehand. This is | ||
488 | also in hexadecimal. | ||
489 | |||
490 | o "balk: nt" counts the number of times we didn't boost (in | ||
491 | other words, we balked) even though it was time to boost because | ||
492 | there were no blocked tasks to boost. This situation occurs | ||
493 | when there is one blocked task on one rcu_node structure and | ||
494 | none on some other rcu_node structure. | ||
495 | |||
496 | o "egt" counts the number of times we balked because although | ||
497 | there were blocked tasks, none of them were blocking the | ||
498 | current grace period, whether expedited or otherwise. | ||
499 | |||
500 | o "bt" counts the number of times we balked because boosting | ||
501 | had already been initiated for the current grace period. | ||
502 | |||
503 | o "nb" counts the number of times we balked because there | ||
504 | was at least one task blocking the current non-expedited grace | ||
505 | period that never had blocked. If it is already running, it | ||
506 | just won't help to boost its priority! | ||
507 | |||
508 | o "ny" counts the number of times we balked because it was | ||
509 | not yet time to start boosting. | ||
510 | |||
511 | o "nos" counts the number of times we balked for other | ||
512 | reasons, e.g., the grace period ended first. | ||
513 | |||
514 | |||
331 | CONFIG_TINY_RCU and CONFIG_TINY_PREEMPT_RCU debugfs Files and Formats | 515 | CONFIG_TINY_RCU and CONFIG_TINY_PREEMPT_RCU debugfs Files and Formats |
332 | 516 | ||
333 | These implementations of RCU provides a single debugfs file under the | 517 | These implementations of RCU provides a single debugfs file under the |
@@ -394,9 +578,9 @@ o "neb" is the number of expedited grace periods that have had | |||
394 | o "nnb" is the number of normal grace periods that have had | 578 | o "nnb" is the number of normal grace periods that have had |
395 | to resort to RCU priority boosting since boot. | 579 | to resort to RCU priority boosting since boot. |
396 | 580 | ||
397 | o "j" is the low-order 12 bits of the jiffies counter in hexadecimal. | 581 | o "j" is the low-order 16 bits of the jiffies counter in hexadecimal. |
398 | 582 | ||
399 | o "bt" is the low-order 12 bits of the value that the jiffies counter | 583 | o "bt" is the low-order 16 bits of the value that the jiffies counter |
400 | will have at the next time that boosting is scheduled to begin. | 584 | will have at the next time that boosting is scheduled to begin. |
401 | 585 | ||
402 | o In the line beginning with "normal balk", the fields are as follows: | 586 | o In the line beginning with "normal balk", the fields are as follows: |
diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt index b6ed61c95856..7c163477fcd8 100644 --- a/Documentation/cgroups/memory.txt +++ b/Documentation/cgroups/memory.txt | |||
@@ -52,8 +52,10 @@ Brief summary of control files. | |||
52 | tasks # attach a task(thread) and show list of threads | 52 | tasks # attach a task(thread) and show list of threads |
53 | cgroup.procs # show list of processes | 53 | cgroup.procs # show list of processes |
54 | cgroup.event_control # an interface for event_fd() | 54 | cgroup.event_control # an interface for event_fd() |
55 | memory.usage_in_bytes # show current memory(RSS+Cache) usage. | 55 | memory.usage_in_bytes # show current res_counter usage for memory |
56 | memory.memsw.usage_in_bytes # show current memory+Swap usage | 56 | (See 5.5 for details) |
57 | memory.memsw.usage_in_bytes # show current res_counter usage for memory+Swap | ||
58 | (See 5.5 for details) | ||
57 | memory.limit_in_bytes # set/show limit of memory usage | 59 | memory.limit_in_bytes # set/show limit of memory usage |
58 | memory.memsw.limit_in_bytes # set/show limit of memory+Swap usage | 60 | memory.memsw.limit_in_bytes # set/show limit of memory+Swap usage |
59 | memory.failcnt # show the number of memory usage hits limits | 61 | memory.failcnt # show the number of memory usage hits limits |
@@ -453,6 +455,15 @@ memory under it will be reclaimed. | |||
453 | You can reset failcnt by writing 0 to failcnt file. | 455 | You can reset failcnt by writing 0 to failcnt file. |
454 | # echo 0 > .../memory.failcnt | 456 | # echo 0 > .../memory.failcnt |
455 | 457 | ||
458 | 5.5 usage_in_bytes | ||
459 | |||
460 | For efficiency, as other kernel components, memory cgroup uses some optimization | ||
461 | to avoid unnecessary cacheline false sharing. usage_in_bytes is affected by the | ||
462 | method and doesn't show 'exact' value of memory(and swap) usage, it's an fuzz | ||
463 | value for efficient access. (Of course, when necessary, it's synchronized.) | ||
464 | If you want to know more exact memory usage, you should use RSS+CACHE(+SWAP) | ||
465 | value in memory.stat(see 5.2). | ||
466 | |||
456 | 6. Hierarchy support | 467 | 6. Hierarchy support |
457 | 468 | ||
458 | The memory controller supports a deep hierarchy and hierarchical accounting. | 469 | The memory controller supports a deep hierarchy and hierarchical accounting. |
diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec4.txt b/Documentation/devicetree/bindings/crypto/fsl-sec4.txt new file mode 100644 index 000000000000..bf57ecd5d73a --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/fsl-sec4.txt | |||
@@ -0,0 +1,397 @@ | |||
1 | ===================================================================== | ||
2 | SEC 4 Device Tree Binding | ||
3 | Copyright (C) 2008-2011 Freescale Semiconductor Inc. | ||
4 | |||
5 | CONTENTS | ||
6 | -Overview | ||
7 | -SEC 4 Node | ||
8 | -Job Ring Node | ||
9 | -Run Time Integrity Check (RTIC) Node | ||
10 | -Run Time Integrity Check (RTIC) Memory Node | ||
11 | -Secure Non-Volatile Storage (SNVS) Node | ||
12 | -Full Example | ||
13 | |||
14 | NOTE: the SEC 4 is also known as Freescale's Cryptographic Accelerator | ||
15 | Accelerator and Assurance Module (CAAM). | ||
16 | |||
17 | ===================================================================== | ||
18 | Overview | ||
19 | |||
20 | DESCRIPTION | ||
21 | |||
22 | SEC 4 h/w can process requests from 2 types of sources. | ||
23 | 1. DPAA Queue Interface (HW interface between Queue Manager & SEC 4). | ||
24 | 2. Job Rings (HW interface between cores & SEC 4 registers). | ||
25 | |||
26 | High Speed Data Path Configuration: | ||
27 | |||
28 | HW interface between QM & SEC 4 and also BM & SEC 4, on DPAA-enabled parts | ||
29 | such as the P4080. The number of simultaneous dequeues the QI can make is | ||
30 | equal to the number of Descriptor Controller (DECO) engines in a particular | ||
31 | SEC version. E.g., the SEC 4.0 in the P4080 has 5 DECOs and can thus | ||
32 | dequeue from 5 subportals simultaneously. | ||
33 | |||
34 | Job Ring Data Path Configuration: | ||
35 | |||
36 | Each JR is located on a separate 4k page, they may (or may not) be made visible | ||
37 | in the memory partition devoted to a particular core. The P4080 has 4 JRs, so | ||
38 | up to 4 JRs can be configured; and all 4 JRs process requests in parallel. | ||
39 | |||
40 | ===================================================================== | ||
41 | SEC 4 Node | ||
42 | |||
43 | Description | ||
44 | |||
45 | Node defines the base address of the SEC 4 block. | ||
46 | This block specifies the address range of all global | ||
47 | configuration registers for the SEC 4 block. It | ||
48 | also receives interrupts from the Run Time Integrity Check | ||
49 | (RTIC) function within the SEC 4 block. | ||
50 | |||
51 | PROPERTIES | ||
52 | |||
53 | - compatible | ||
54 | Usage: required | ||
55 | Value type: <string> | ||
56 | Definition: Must include "fsl,sec-v4.0" | ||
57 | |||
58 | - #address-cells | ||
59 | Usage: required | ||
60 | Value type: <u32> | ||
61 | Definition: A standard property. Defines the number of cells | ||
62 | for representing physical addresses in child nodes. | ||
63 | |||
64 | - #size-cells | ||
65 | Usage: required | ||
66 | Value type: <u32> | ||
67 | Definition: A standard property. Defines the number of cells | ||
68 | for representing the size of physical addresses in | ||
69 | child nodes. | ||
70 | |||
71 | - reg | ||
72 | Usage: required | ||
73 | Value type: <prop-encoded-array> | ||
74 | Definition: A standard property. Specifies the physical | ||
75 | address and length of the SEC4 configuration registers. | ||
76 | registers | ||
77 | |||
78 | - ranges | ||
79 | Usage: required | ||
80 | Value type: <prop-encoded-array> | ||
81 | Definition: A standard property. Specifies the physical address | ||
82 | range of the SEC 4.0 register space (-SNVS not included). A | ||
83 | triplet that includes the child address, parent address, & | ||
84 | length. | ||
85 | |||
86 | - interrupts | ||
87 | Usage: required | ||
88 | Value type: <prop_encoded-array> | ||
89 | Definition: Specifies the interrupts generated by this | ||
90 | device. The value of the interrupts property | ||
91 | consists of one interrupt specifier. The format | ||
92 | of the specifier is defined by the binding document | ||
93 | describing the node's interrupt parent. | ||
94 | |||
95 | - interrupt-parent | ||
96 | Usage: (required if interrupt property is defined) | ||
97 | Value type: <phandle> | ||
98 | Definition: A single <phandle> value that points | ||
99 | to the interrupt parent to which the child domain | ||
100 | is being mapped. | ||
101 | |||
102 | Note: All other standard properties (see the ePAPR) are allowed | ||
103 | but are optional. | ||
104 | |||
105 | |||
106 | EXAMPLE | ||
107 | crypto@300000 { | ||
108 | compatible = "fsl,sec-v4.0"; | ||
109 | #address-cells = <1>; | ||
110 | #size-cells = <1>; | ||
111 | reg = <0x300000 0x10000>; | ||
112 | ranges = <0 0x300000 0x10000>; | ||
113 | interrupt-parent = <&mpic>; | ||
114 | interrupts = <92 2>; | ||
115 | }; | ||
116 | |||
117 | ===================================================================== | ||
118 | Job Ring (JR) Node | ||
119 | |||
120 | Child of the crypto node defines data processing interface to SEC 4 | ||
121 | across the peripheral bus for purposes of processing | ||
122 | cryptographic descriptors. The specified address | ||
123 | range can be made visible to one (or more) cores. | ||
124 | The interrupt defined for this node is controlled within | ||
125 | the address range of this node. | ||
126 | |||
127 | - compatible | ||
128 | Usage: required | ||
129 | Value type: <string> | ||
130 | Definition: Must include "fsl,sec-v4.0-job-ring" | ||
131 | |||
132 | - reg | ||
133 | Usage: required | ||
134 | Value type: <prop-encoded-array> | ||
135 | Definition: Specifies a two JR parameters: an offset from | ||
136 | the parent physical address and the length the JR registers. | ||
137 | |||
138 | - fsl,liodn | ||
139 | Usage: optional-but-recommended | ||
140 | Value type: <prop-encoded-array> | ||
141 | Definition: | ||
142 | Specifies the LIODN to be used in conjunction with | ||
143 | the ppid-to-liodn table that specifies the PPID to LIODN mapping. | ||
144 | Needed if the PAMU is used. Value is a 12 bit value | ||
145 | where value is a LIODN ID for this JR. This property is | ||
146 | normally set by boot firmware. | ||
147 | |||
148 | - interrupts | ||
149 | Usage: required | ||
150 | Value type: <prop_encoded-array> | ||
151 | Definition: Specifies the interrupts generated by this | ||
152 | device. The value of the interrupts property | ||
153 | consists of one interrupt specifier. The format | ||
154 | of the specifier is defined by the binding document | ||
155 | describing the node's interrupt parent. | ||
156 | |||
157 | - interrupt-parent | ||
158 | Usage: (required if interrupt property is defined) | ||
159 | Value type: <phandle> | ||
160 | Definition: A single <phandle> value that points | ||
161 | to the interrupt parent to which the child domain | ||
162 | is being mapped. | ||
163 | |||
164 | EXAMPLE | ||
165 | jr@1000 { | ||
166 | compatible = "fsl,sec-v4.0-job-ring"; | ||
167 | reg = <0x1000 0x1000>; | ||
168 | fsl,liodn = <0x081>; | ||
169 | interrupt-parent = <&mpic>; | ||
170 | interrupts = <88 2>; | ||
171 | }; | ||
172 | |||
173 | |||
174 | ===================================================================== | ||
175 | Run Time Integrity Check (RTIC) Node | ||
176 | |||
177 | Child node of the crypto node. Defines a register space that | ||
178 | contains up to 5 sets of addresses and their lengths (sizes) that | ||
179 | will be checked at run time. After an initial hash result is | ||
180 | calculated, these addresses are checked by HW to monitor any | ||
181 | change. If any memory is modified, a Security Violation is | ||
182 | triggered (see SNVS definition). | ||
183 | |||
184 | |||
185 | - compatible | ||
186 | Usage: required | ||
187 | Value type: <string> | ||
188 | Definition: Must include "fsl,sec-v4.0-rtic". | ||
189 | |||
190 | - #address-cells | ||
191 | Usage: required | ||
192 | Value type: <u32> | ||
193 | Definition: A standard property. Defines the number of cells | ||
194 | for representing physical addresses in child nodes. Must | ||
195 | have a value of 1. | ||
196 | |||
197 | - #size-cells | ||
198 | Usage: required | ||
199 | Value type: <u32> | ||
200 | Definition: A standard property. Defines the number of cells | ||
201 | for representing the size of physical addresses in | ||
202 | child nodes. Must have a value of 1. | ||
203 | |||
204 | - reg | ||
205 | Usage: required | ||
206 | Value type: <prop-encoded-array> | ||
207 | Definition: A standard property. Specifies a two parameters: | ||
208 | an offset from the parent physical address and the length | ||
209 | the SEC4 registers. | ||
210 | |||
211 | - ranges | ||
212 | Usage: required | ||
213 | Value type: <prop-encoded-array> | ||
214 | Definition: A standard property. Specifies the physical address | ||
215 | range of the SEC 4 register space (-SNVS not included). A | ||
216 | triplet that includes the child address, parent address, & | ||
217 | length. | ||
218 | |||
219 | EXAMPLE | ||
220 | rtic@6000 { | ||
221 | compatible = "fsl,sec-v4.0-rtic"; | ||
222 | #address-cells = <1>; | ||
223 | #size-cells = <1>; | ||
224 | reg = <0x6000 0x100>; | ||
225 | ranges = <0x0 0x6100 0xe00>; | ||
226 | }; | ||
227 | |||
228 | ===================================================================== | ||
229 | Run Time Integrity Check (RTIC) Memory Node | ||
230 | A child node that defines individual RTIC memory regions that are used to | ||
231 | perform run-time integrity check of memory areas that should not modified. | ||
232 | The node defines a register that contains the memory address & | ||
233 | length (combined) and a second register that contains the hash result | ||
234 | in big endian format. | ||
235 | |||
236 | - compatible | ||
237 | Usage: required | ||
238 | Value type: <string> | ||
239 | Definition: Must include "fsl,sec-v4.0-rtic-memory". | ||
240 | |||
241 | - reg | ||
242 | Usage: required | ||
243 | Value type: <prop-encoded-array> | ||
244 | Definition: A standard property. Specifies two parameters: | ||
245 | an offset from the parent physical address and the length: | ||
246 | |||
247 | 1. The location of the RTIC memory address & length registers. | ||
248 | 2. The location RTIC hash result. | ||
249 | |||
250 | - fsl,rtic-region | ||
251 | Usage: optional-but-recommended | ||
252 | Value type: <prop-encoded-array> | ||
253 | Definition: | ||
254 | Specifies the HW address (36 bit address) for this region | ||
255 | followed by the length of the HW partition to be checked; | ||
256 | the address is represented as a 64 bit quantity followed | ||
257 | by a 32 bit length. | ||
258 | |||
259 | - fsl,liodn | ||
260 | Usage: optional-but-recommended | ||
261 | Value type: <prop-encoded-array> | ||
262 | Definition: | ||
263 | Specifies the LIODN to be used in conjunction with | ||
264 | the ppid-to-liodn table that specifies the PPID to LIODN | ||
265 | mapping. Needed if the PAMU is used. Value is a 12 bit value | ||
266 | where value is a LIODN ID for this RTIC memory region. This | ||
267 | property is normally set by boot firmware. | ||
268 | |||
269 | EXAMPLE | ||
270 | rtic-a@0 { | ||
271 | compatible = "fsl,sec-v4.0-rtic-memory"; | ||
272 | reg = <0x00 0x20 0x100 0x80>; | ||
273 | fsl,liodn = <0x03c>; | ||
274 | fsl,rtic-region = <0x12345678 0x12345678 0x12345678>; | ||
275 | }; | ||
276 | |||
277 | ===================================================================== | ||
278 | Secure Non-Volatile Storage (SNVS) Node | ||
279 | |||
280 | Node defines address range and the associated | ||
281 | interrupt for the SNVS function. This function | ||
282 | monitors security state information & reports | ||
283 | security violations. | ||
284 | |||
285 | - compatible | ||
286 | Usage: required | ||
287 | Value type: <string> | ||
288 | Definition: Must include "fsl,sec-v4.0-mon". | ||
289 | |||
290 | - reg | ||
291 | Usage: required | ||
292 | Value type: <prop-encoded-array> | ||
293 | Definition: A standard property. Specifies the physical | ||
294 | address and length of the SEC4 configuration | ||
295 | registers. | ||
296 | |||
297 | - interrupts | ||
298 | Usage: required | ||
299 | Value type: <prop_encoded-array> | ||
300 | Definition: Specifies the interrupts generated by this | ||
301 | device. The value of the interrupts property | ||
302 | consists of one interrupt specifier. The format | ||
303 | of the specifier is defined by the binding document | ||
304 | describing the node's interrupt parent. | ||
305 | |||
306 | - interrupt-parent | ||
307 | Usage: (required if interrupt property is defined) | ||
308 | Value type: <phandle> | ||
309 | Definition: A single <phandle> value that points | ||
310 | to the interrupt parent to which the child domain | ||
311 | is being mapped. | ||
312 | |||
313 | EXAMPLE | ||
314 | sec_mon@314000 { | ||
315 | compatible = "fsl,sec-v4.0-mon"; | ||
316 | reg = <0x314000 0x1000>; | ||
317 | interrupt-parent = <&mpic>; | ||
318 | interrupts = <93 2>; | ||
319 | }; | ||
320 | |||
321 | ===================================================================== | ||
322 | FULL EXAMPLE | ||
323 | |||
324 | crypto: crypto@300000 { | ||
325 | compatible = "fsl,sec-v4.0"; | ||
326 | #address-cells = <1>; | ||
327 | #size-cells = <1>; | ||
328 | reg = <0x300000 0x10000>; | ||
329 | ranges = <0 0x300000 0x10000>; | ||
330 | interrupt-parent = <&mpic>; | ||
331 | interrupts = <92 2>; | ||
332 | |||
333 | sec_jr0: jr@1000 { | ||
334 | compatible = "fsl,sec-v4.0-job-ring"; | ||
335 | reg = <0x1000 0x1000>; | ||
336 | interrupt-parent = <&mpic>; | ||
337 | interrupts = <88 2>; | ||
338 | }; | ||
339 | |||
340 | sec_jr1: jr@2000 { | ||
341 | compatible = "fsl,sec-v4.0-job-ring"; | ||
342 | reg = <0x2000 0x1000>; | ||
343 | interrupt-parent = <&mpic>; | ||
344 | interrupts = <89 2>; | ||
345 | }; | ||
346 | |||
347 | sec_jr2: jr@3000 { | ||
348 | compatible = "fsl,sec-v4.0-job-ring"; | ||
349 | reg = <0x3000 0x1000>; | ||
350 | interrupt-parent = <&mpic>; | ||
351 | interrupts = <90 2>; | ||
352 | }; | ||
353 | |||
354 | sec_jr3: jr@4000 { | ||
355 | compatible = "fsl,sec-v4.0-job-ring"; | ||
356 | reg = <0x4000 0x1000>; | ||
357 | interrupt-parent = <&mpic>; | ||
358 | interrupts = <91 2>; | ||
359 | }; | ||
360 | |||
361 | rtic@6000 { | ||
362 | compatible = "fsl,sec-v4.0-rtic"; | ||
363 | #address-cells = <1>; | ||
364 | #size-cells = <1>; | ||
365 | reg = <0x6000 0x100>; | ||
366 | ranges = <0x0 0x6100 0xe00>; | ||
367 | |||
368 | rtic_a: rtic-a@0 { | ||
369 | compatible = "fsl,sec-v4.0-rtic-memory"; | ||
370 | reg = <0x00 0x20 0x100 0x80>; | ||
371 | }; | ||
372 | |||
373 | rtic_b: rtic-b@20 { | ||
374 | compatible = "fsl,sec-v4.0-rtic-memory"; | ||
375 | reg = <0x20 0x20 0x200 0x80>; | ||
376 | }; | ||
377 | |||
378 | rtic_c: rtic-c@40 { | ||
379 | compatible = "fsl,sec-v4.0-rtic-memory"; | ||
380 | reg = <0x40 0x20 0x300 0x80>; | ||
381 | }; | ||
382 | |||
383 | rtic_d: rtic-d@60 { | ||
384 | compatible = "fsl,sec-v4.0-rtic-memory"; | ||
385 | reg = <0x60 0x20 0x500 0x80>; | ||
386 | }; | ||
387 | }; | ||
388 | }; | ||
389 | |||
390 | sec_mon: sec_mon@314000 { | ||
391 | compatible = "fsl,sec-v4.0-mon"; | ||
392 | reg = <0x314000 0x1000>; | ||
393 | interrupt-parent = <&mpic>; | ||
394 | interrupts = <93 2>; | ||
395 | }; | ||
396 | |||
397 | ===================================================================== | ||
diff --git a/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt b/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt new file mode 100755 index 000000000000..1a729f089866 --- /dev/null +++ b/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt | |||
@@ -0,0 +1,61 @@ | |||
1 | CAN Device Tree Bindings | ||
2 | ------------------------ | ||
3 | 2011 Freescale Semiconductor, Inc. | ||
4 | |||
5 | fsl,flexcan-v1.0 nodes | ||
6 | ----------------------- | ||
7 | In addition to the required compatible-, reg- and interrupt-properties, you can | ||
8 | also specify which clock source shall be used for the controller. | ||
9 | |||
10 | CPI Clock- Can Protocol Interface Clock | ||
11 | This CLK_SRC bit of CTRL(control register) selects the clock source to | ||
12 | the CAN Protocol Interface(CPI) to be either the peripheral clock | ||
13 | (driven by the PLL) or the crystal oscillator clock. The selected clock | ||
14 | is the one fed to the prescaler to generate the Serial Clock (Sclock). | ||
15 | The PRESDIV field of CTRL(control register) controls a prescaler that | ||
16 | generates the Serial Clock (Sclock), whose period defines the | ||
17 | time quantum used to compose the CAN waveform. | ||
18 | |||
19 | Can Engine Clock Source | ||
20 | There are two sources for CAN clock | ||
21 | - Platform Clock It represents the bus clock | ||
22 | - Oscillator Clock | ||
23 | |||
24 | Peripheral Clock (PLL) | ||
25 | -------------- | ||
26 | | | ||
27 | --------- ------------- | ||
28 | | |CPI Clock | Prescaler | Sclock | ||
29 | | |---------------->| (1.. 256) |------------> | ||
30 | --------- ------------- | ||
31 | | | | ||
32 | -------------- ---------------------CLK_SRC | ||
33 | Oscillator Clock | ||
34 | |||
35 | - fsl,flexcan-clock-source : CAN Engine Clock Source.This property selects | ||
36 | the peripheral clock. PLL clock is fed to the | ||
37 | prescaler to generate the Serial Clock (Sclock). | ||
38 | Valid values are "oscillator" and "platform" | ||
39 | "oscillator": CAN engine clock source is oscillator clock. | ||
40 | "platform" The CAN engine clock source is the bus clock | ||
41 | (platform clock). | ||
42 | |||
43 | - fsl,flexcan-clock-divider : for the reference and system clock, an additional | ||
44 | clock divider can be specified. | ||
45 | - clock-frequency: frequency required to calculate the bitrate for FlexCAN. | ||
46 | |||
47 | Note: | ||
48 | - v1.0 of flexcan-v1.0 represent the IP block version for P1010 SOC. | ||
49 | - P1010 does not have oscillator as the Clock Source.So the default | ||
50 | Clock Source is platform clock. | ||
51 | Examples: | ||
52 | |||
53 | can0@1c000 { | ||
54 | compatible = "fsl,flexcan-v1.0"; | ||
55 | reg = <0x1c000 0x1000>; | ||
56 | interrupts = <48 0x2>; | ||
57 | interrupt-parent = <&mpic>; | ||
58 | fsl,flexcan-clock-source = "platform"; | ||
59 | fsl,flexcan-clock-divider = <2>; | ||
60 | clock-frequency = <fixed by u-boot>; | ||
61 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/ifc.txt b/Documentation/devicetree/bindings/powerpc/fsl/ifc.txt new file mode 100644 index 000000000000..939a26d541f6 --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/ifc.txt | |||
@@ -0,0 +1,76 @@ | |||
1 | Integrated Flash Controller | ||
2 | |||
3 | Properties: | ||
4 | - name : Should be ifc | ||
5 | - compatible : should contain "fsl,ifc". The version of the integrated | ||
6 | flash controller can be found in the IFC_REV register at | ||
7 | offset zero. | ||
8 | |||
9 | - #address-cells : Should be either two or three. The first cell is the | ||
10 | chipselect number, and the remaining cells are the | ||
11 | offset into the chipselect. | ||
12 | - #size-cells : Either one or two, depending on how large each chipselect | ||
13 | can be. | ||
14 | - reg : Offset and length of the register set for the device | ||
15 | - interrupts : IFC has two interrupts. The first one is the "common" | ||
16 | interrupt(CM_EVTER_STAT), and second is the NAND interrupt | ||
17 | (NAND_EVTER_STAT). | ||
18 | |||
19 | - ranges : Each range corresponds to a single chipselect, and covers | ||
20 | the entire access window as configured. | ||
21 | |||
22 | Child device nodes describe the devices connected to IFC such as NOR (e.g. | ||
23 | cfi-flash) and NAND (fsl,ifc-nand). There might be board specific devices | ||
24 | like FPGAs, CPLDs, etc. | ||
25 | |||
26 | Example: | ||
27 | |||
28 | ifc@ffe1e000 { | ||
29 | compatible = "fsl,ifc", "simple-bus"; | ||
30 | #address-cells = <2>; | ||
31 | #size-cells = <1>; | ||
32 | reg = <0x0 0xffe1e000 0 0x2000>; | ||
33 | interrupts = <16 2 19 2>; | ||
34 | |||
35 | /* NOR, NAND Flashes and CPLD on board */ | ||
36 | ranges = <0x0 0x0 0x0 0xee000000 0x02000000 | ||
37 | 0x1 0x0 0x0 0xffa00000 0x00010000 | ||
38 | 0x3 0x0 0x0 0xffb00000 0x00020000>; | ||
39 | |||
40 | flash@0,0 { | ||
41 | #address-cells = <1>; | ||
42 | #size-cells = <1>; | ||
43 | compatible = "cfi-flash"; | ||
44 | reg = <0x0 0x0 0x2000000>; | ||
45 | bank-width = <2>; | ||
46 | device-width = <1>; | ||
47 | |||
48 | partition@0 { | ||
49 | /* 32MB for user data */ | ||
50 | reg = <0x0 0x02000000>; | ||
51 | label = "NOR Data"; | ||
52 | }; | ||
53 | }; | ||
54 | |||
55 | flash@1,0 { | ||
56 | #address-cells = <1>; | ||
57 | #size-cells = <1>; | ||
58 | compatible = "fsl,ifc-nand"; | ||
59 | reg = <0x1 0x0 0x10000>; | ||
60 | |||
61 | partition@0 { | ||
62 | /* This location must not be altered */ | ||
63 | /* 1MB for u-boot Bootloader Image */ | ||
64 | reg = <0x0 0x00100000>; | ||
65 | label = "NAND U-Boot Image"; | ||
66 | read-only; | ||
67 | }; | ||
68 | }; | ||
69 | |||
70 | cpld@3,0 { | ||
71 | #address-cells = <1>; | ||
72 | #size-cells = <1>; | ||
73 | compatible = "fsl,p1010rdb-cpld"; | ||
74 | reg = <0x3 0x0 0x000001f>; | ||
75 | }; | ||
76 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/mpic-timer.txt b/Documentation/devicetree/bindings/powerpc/fsl/mpic-timer.txt new file mode 100644 index 000000000000..df41958140e8 --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/mpic-timer.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | * Freescale MPIC timers | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "fsl,mpic-global-timer" | ||
5 | |||
6 | - reg : Contains two regions. The first is the main timer register bank | ||
7 | (GTCCRxx, GTBCRxx, GTVPRxx, GTDRxx). The second is the timer control | ||
8 | register (TCRx) for the group. | ||
9 | |||
10 | - fsl,available-ranges: use <start count> style section to define which | ||
11 | timer interrupts can be used. This property is optional; without this, | ||
12 | all timers within the group can be used. | ||
13 | |||
14 | - interrupts: one interrupt per timer in the group, in order, starting | ||
15 | with timer zero. If timer-available-ranges is present, only the | ||
16 | interrupts that correspond to available timers shall be present. | ||
17 | |||
18 | Example: | ||
19 | /* Note that this requires #interrupt-cells to be 4 */ | ||
20 | timer0: timer@41100 { | ||
21 | compatible = "fsl,mpic-global-timer"; | ||
22 | reg = <0x41100 0x100 0x41300 4>; | ||
23 | |||
24 | /* Another AMP partition is using timers 0 and 1 */ | ||
25 | fsl,available-ranges = <2 2>; | ||
26 | |||
27 | interrupts = <2 0 3 0 | ||
28 | 3 0 3 0>; | ||
29 | }; | ||
30 | |||
31 | timer1: timer@42100 { | ||
32 | compatible = "fsl,mpic-global-timer"; | ||
33 | reg = <0x42100 0x100 0x42300 4>; | ||
34 | interrupts = <4 0 3 0 | ||
35 | 5 0 3 0 | ||
36 | 6 0 3 0 | ||
37 | 7 0 3 0>; | ||
38 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt b/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt index 4f6145859aab..2cf38bd841fd 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt | |||
@@ -190,7 +190,7 @@ EXAMPLE 4 | |||
190 | */ | 190 | */ |
191 | timer0: timer@41100 { | 191 | timer0: timer@41100 { |
192 | compatible = "fsl,mpic-global-timer"; | 192 | compatible = "fsl,mpic-global-timer"; |
193 | reg = <0x41100 0x100>; | 193 | reg = <0x41100 0x100 0x41300 4>; |
194 | interrupts = <0 0 3 0 | 194 | interrupts = <0 0 3 0 |
195 | 1 0 3 0 | 195 | 1 0 3 0 |
196 | 2 0 3 0 | 196 | 2 0 3 0 |
diff --git a/Documentation/driver-model/bus.txt b/Documentation/driver-model/bus.txt index 5001b7511626..6754b2df8aa1 100644 --- a/Documentation/driver-model/bus.txt +++ b/Documentation/driver-model/bus.txt | |||
@@ -3,24 +3,7 @@ Bus Types | |||
3 | 3 | ||
4 | Definition | 4 | Definition |
5 | ~~~~~~~~~~ | 5 | ~~~~~~~~~~ |
6 | 6 | See the kerneldoc for the struct bus_type. | |
7 | struct bus_type { | ||
8 | char * name; | ||
9 | |||
10 | struct subsystem subsys; | ||
11 | struct kset drivers; | ||
12 | struct kset devices; | ||
13 | |||
14 | struct bus_attribute * bus_attrs; | ||
15 | struct device_attribute * dev_attrs; | ||
16 | struct driver_attribute * drv_attrs; | ||
17 | |||
18 | int (*match)(struct device * dev, struct device_driver * drv); | ||
19 | int (*hotplug) (struct device *dev, char **envp, | ||
20 | int num_envp, char *buffer, int buffer_size); | ||
21 | int (*suspend)(struct device * dev, pm_message_t state); | ||
22 | int (*resume)(struct device * dev); | ||
23 | }; | ||
24 | 7 | ||
25 | int bus_register(struct bus_type * bus); | 8 | int bus_register(struct bus_type * bus); |
26 | 9 | ||
diff --git a/Documentation/driver-model/class.txt b/Documentation/driver-model/class.txt index 548505f14aa4..1fefc480a80b 100644 --- a/Documentation/driver-model/class.txt +++ b/Documentation/driver-model/class.txt | |||
@@ -27,22 +27,7 @@ The device class structure looks like: | |||
27 | typedef int (*devclass_add)(struct device *); | 27 | typedef int (*devclass_add)(struct device *); |
28 | typedef void (*devclass_remove)(struct device *); | 28 | typedef void (*devclass_remove)(struct device *); |
29 | 29 | ||
30 | struct device_class { | 30 | See the kerneldoc for the struct class. |
31 | char * name; | ||
32 | rwlock_t lock; | ||
33 | u32 devnum; | ||
34 | struct list_head node; | ||
35 | |||
36 | struct list_head drivers; | ||
37 | struct list_head intf_list; | ||
38 | |||
39 | struct driver_dir_entry dir; | ||
40 | struct driver_dir_entry device_dir; | ||
41 | struct driver_dir_entry driver_dir; | ||
42 | |||
43 | devclass_add add_device; | ||
44 | devclass_remove remove_device; | ||
45 | }; | ||
46 | 31 | ||
47 | A typical device class definition would look like: | 32 | A typical device class definition would look like: |
48 | 33 | ||
diff --git a/Documentation/driver-model/device.txt b/Documentation/driver-model/device.txt index a124f3126b0d..b2ff42685bcb 100644 --- a/Documentation/driver-model/device.txt +++ b/Documentation/driver-model/device.txt | |||
@@ -2,96 +2,7 @@ | |||
2 | The Basic Device Structure | 2 | The Basic Device Structure |
3 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
4 | 4 | ||
5 | struct device { | 5 | See the kerneldoc for the struct device. |
6 | struct list_head g_list; | ||
7 | struct list_head node; | ||
8 | struct list_head bus_list; | ||
9 | struct list_head driver_list; | ||
10 | struct list_head intf_list; | ||
11 | struct list_head children; | ||
12 | struct device * parent; | ||
13 | |||
14 | char name[DEVICE_NAME_SIZE]; | ||
15 | char bus_id[BUS_ID_SIZE]; | ||
16 | |||
17 | spinlock_t lock; | ||
18 | atomic_t refcount; | ||
19 | |||
20 | struct bus_type * bus; | ||
21 | struct driver_dir_entry dir; | ||
22 | |||
23 | u32 class_num; | ||
24 | |||
25 | struct device_driver *driver; | ||
26 | void *driver_data; | ||
27 | void *platform_data; | ||
28 | |||
29 | u32 current_state; | ||
30 | unsigned char *saved_state; | ||
31 | |||
32 | void (*release)(struct device * dev); | ||
33 | }; | ||
34 | |||
35 | Fields | ||
36 | ~~~~~~ | ||
37 | g_list: Node in the global device list. | ||
38 | |||
39 | node: Node in device's parent's children list. | ||
40 | |||
41 | bus_list: Node in device's bus's devices list. | ||
42 | |||
43 | driver_list: Node in device's driver's devices list. | ||
44 | |||
45 | intf_list: List of intf_data. There is one structure allocated for | ||
46 | each interface that the device supports. | ||
47 | |||
48 | children: List of child devices. | ||
49 | |||
50 | parent: *** FIXME *** | ||
51 | |||
52 | name: ASCII description of device. | ||
53 | Example: " 3Com Corporation 3c905 100BaseTX [Boomerang]" | ||
54 | |||
55 | bus_id: ASCII representation of device's bus position. This | ||
56 | field should be a name unique across all devices on the | ||
57 | bus type the device belongs to. | ||
58 | |||
59 | Example: PCI bus_ids are in the form of | ||
60 | <bus number>:<slot number>.<function number> | ||
61 | This name is unique across all PCI devices in the system. | ||
62 | |||
63 | lock: Spinlock for the device. | ||
64 | |||
65 | refcount: Reference count on the device. | ||
66 | |||
67 | bus: Pointer to struct bus_type that device belongs to. | ||
68 | |||
69 | dir: Device's sysfs directory. | ||
70 | |||
71 | class_num: Class-enumerated value of the device. | ||
72 | |||
73 | driver: Pointer to struct device_driver that controls the device. | ||
74 | |||
75 | driver_data: Driver-specific data. | ||
76 | |||
77 | platform_data: Platform data specific to the device. | ||
78 | |||
79 | Example: for devices on custom boards, as typical of embedded | ||
80 | and SOC based hardware, Linux often uses platform_data to point | ||
81 | to board-specific structures describing devices and how they | ||
82 | are wired. That can include what ports are available, chip | ||
83 | variants, which GPIO pins act in what additional roles, and so | ||
84 | on. This shrinks the "Board Support Packages" (BSPs) and | ||
85 | minimizes board-specific #ifdefs in drivers. | ||
86 | |||
87 | current_state: Current power state of the device. | ||
88 | |||
89 | saved_state: Pointer to saved state of the device. This is usable by | ||
90 | the device driver controlling the device. | ||
91 | |||
92 | release: Callback to free the device after all references have | ||
93 | gone away. This should be set by the allocator of the | ||
94 | device (i.e. the bus driver that discovered the device). | ||
95 | 6 | ||
96 | 7 | ||
97 | Programming Interface | 8 | Programming Interface |
diff --git a/Documentation/driver-model/driver.txt b/Documentation/driver-model/driver.txt index d2cd6fb8ba9e..4421135826a2 100644 --- a/Documentation/driver-model/driver.txt +++ b/Documentation/driver-model/driver.txt | |||
@@ -1,23 +1,7 @@ | |||
1 | 1 | ||
2 | Device Drivers | 2 | Device Drivers |
3 | 3 | ||
4 | struct device_driver { | 4 | See the kerneldoc for the struct device_driver. |
5 | char * name; | ||
6 | struct bus_type * bus; | ||
7 | |||
8 | struct completion unloaded; | ||
9 | struct kobject kobj; | ||
10 | list_t devices; | ||
11 | |||
12 | struct module *owner; | ||
13 | |||
14 | int (*probe) (struct device * dev); | ||
15 | int (*remove) (struct device * dev); | ||
16 | |||
17 | int (*suspend) (struct device * dev, pm_message_t state); | ||
18 | int (*resume) (struct device * dev); | ||
19 | }; | ||
20 | |||
21 | 5 | ||
22 | 6 | ||
23 | Allocation | 7 | Allocation |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 9536652eadbf..19132cadc18d 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -35,17 +35,6 @@ Who: Luis R. Rodriguez <lrodriguez@atheros.com> | |||
35 | 35 | ||
36 | --------------------------- | 36 | --------------------------- |
37 | 37 | ||
38 | What: AR9170USB | ||
39 | When: 2.6.40 | ||
40 | |||
41 | Why: This driver is deprecated and the firmware is no longer | ||
42 | maintained. The replacement driver "carl9170" has been | ||
43 | around for a while, so the devices are still supported. | ||
44 | |||
45 | Who: Christian Lamparter <chunkeey@googlemail.com> | ||
46 | |||
47 | --------------------------- | ||
48 | |||
49 | What: IRQF_SAMPLE_RANDOM | 38 | What: IRQF_SAMPLE_RANDOM |
50 | Check: IRQF_SAMPLE_RANDOM | 39 | Check: IRQF_SAMPLE_RANDOM |
51 | When: July 2009 | 40 | When: July 2009 |
@@ -405,16 +394,6 @@ Who: anybody or Florian Mickler <florian@mickler.org> | |||
405 | 394 | ||
406 | ---------------------------- | 395 | ---------------------------- |
407 | 396 | ||
408 | What: capifs | ||
409 | When: February 2011 | ||
410 | Files: drivers/isdn/capi/capifs.* | ||
411 | Why: udev fully replaces this special file system that only contains CAPI | ||
412 | NCCI TTY device nodes. User space (pppdcapiplugin) works without | ||
413 | noticing the difference. | ||
414 | Who: Jan Kiszka <jan.kiszka@web.de> | ||
415 | |||
416 | ---------------------------- | ||
417 | |||
418 | What: KVM paravirt mmu host support | 397 | What: KVM paravirt mmu host support |
419 | When: January 2011 | 398 | When: January 2011 |
420 | Why: The paravirt mmu host support is slower than non-paravirt mmu, both | 399 | Why: The paravirt mmu host support is slower than non-paravirt mmu, both |
@@ -460,14 +439,6 @@ Who: Thomas Gleixner <tglx@linutronix.de> | |||
460 | 439 | ||
461 | ---------------------------- | 440 | ---------------------------- |
462 | 441 | ||
463 | What: The acpi_sleep=s4_nonvs command line option | ||
464 | When: 2.6.37 | ||
465 | Files: arch/x86/kernel/acpi/sleep.c | ||
466 | Why: superseded by acpi_sleep=nonvs | ||
467 | Who: Rafael J. Wysocki <rjw@sisk.pl> | ||
468 | |||
469 | ---------------------------- | ||
470 | |||
471 | What: PCI DMA unmap state API | 442 | What: PCI DMA unmap state API |
472 | When: August 2012 | 443 | When: August 2012 |
473 | Why: PCI DMA unmap state API (include/linux/pci-dma.h) was replaced | 444 | Why: PCI DMA unmap state API (include/linux/pci-dma.h) was replaced |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index b0b814d75ca1..60740e8ecb37 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -836,7 +836,6 @@ Provides counts of softirq handlers serviced since boot time, for each cpu. | |||
836 | TASKLET: 0 0 0 290 | 836 | TASKLET: 0 0 0 290 |
837 | SCHED: 27035 26983 26971 26746 | 837 | SCHED: 27035 26983 26971 26746 |
838 | HRTIMER: 0 0 0 0 | 838 | HRTIMER: 0 0 0 0 |
839 | RCU: 1678 1769 2178 2250 | ||
840 | 839 | ||
841 | 840 | ||
842 | 1.3 IDE devices in /proc/ide | 841 | 1.3 IDE devices in /proc/ide |
diff --git a/Documentation/flexible-arrays.txt b/Documentation/flexible-arrays.txt index cb8a3a00cc92..df904aec9904 100644 --- a/Documentation/flexible-arrays.txt +++ b/Documentation/flexible-arrays.txt | |||
@@ -66,10 +66,10 @@ trick is to ensure that any needed memory allocations are done before | |||
66 | entering atomic context, using: | 66 | entering atomic context, using: |
67 | 67 | ||
68 | int flex_array_prealloc(struct flex_array *array, unsigned int start, | 68 | int flex_array_prealloc(struct flex_array *array, unsigned int start, |
69 | unsigned int end, gfp_t flags); | 69 | unsigned int nr_elements, gfp_t flags); |
70 | 70 | ||
71 | This function will ensure that memory for the elements indexed in the range | 71 | This function will ensure that memory for the elements indexed in the range |
72 | defined by start and end has been allocated. Thereafter, a | 72 | defined by start and nr_elements has been allocated. Thereafter, a |
73 | flex_array_put() call on an element in that range is guaranteed not to | 73 | flex_array_put() call on an element in that range is guaranteed not to |
74 | block. | 74 | block. |
75 | 75 | ||
diff --git a/Documentation/usb/hiddev.txt b/Documentation/hid/hiddev.txt index 6e8c9f1d2f22..6e8c9f1d2f22 100644 --- a/Documentation/usb/hiddev.txt +++ b/Documentation/hid/hiddev.txt | |||
diff --git a/Documentation/hid/hidraw.txt b/Documentation/hid/hidraw.txt new file mode 100644 index 000000000000..029e6cb9a7e8 --- /dev/null +++ b/Documentation/hid/hidraw.txt | |||
@@ -0,0 +1,119 @@ | |||
1 | HIDRAW - Raw Access to USB and Bluetooth Human Interface Devices | ||
2 | ================================================================== | ||
3 | |||
4 | The hidraw driver provides a raw interface to USB and Bluetooth Human | ||
5 | Interface Devices (HIDs). It differs from hiddev in that reports sent and | ||
6 | received are not parsed by the HID parser, but are sent to and received from | ||
7 | the device unmodified. | ||
8 | |||
9 | Hidraw should be used if the userspace application knows exactly how to | ||
10 | communicate with the hardware device, and is able to construct the HID | ||
11 | reports manually. This is often the case when making userspace drivers for | ||
12 | custom HID devices. | ||
13 | |||
14 | Hidraw is also useful for communicating with non-conformant HID devices | ||
15 | which send and receive data in a way that is inconsistent with their report | ||
16 | descriptors. Because hiddev parses reports which are sent and received | ||
17 | through it, checking them against the device's report descriptor, such | ||
18 | communication with these non-conformant devices is impossible using hiddev. | ||
19 | Hidraw is the only alternative, short of writing a custom kernel driver, for | ||
20 | these non-conformant devices. | ||
21 | |||
22 | A benefit of hidraw is that its use by userspace applications is independent | ||
23 | of the underlying hardware type. Currently, Hidraw is implemented for USB | ||
24 | and Bluetooth. In the future, as new hardware bus types are developed which | ||
25 | use the HID specification, hidraw will be expanded to add support for these | ||
26 | new bus types. | ||
27 | |||
28 | Hidraw uses a dynamic major number, meaning that udev should be relied on to | ||
29 | create hidraw device nodes. Udev will typically create the device nodes | ||
30 | directly under /dev (eg: /dev/hidraw0). As this location is distribution- | ||
31 | and udev rule-dependent, applications should use libudev to locate hidraw | ||
32 | devices attached to the system. There is a tutorial on libudev with a | ||
33 | working example at: | ||
34 | http://www.signal11.us/oss/udev/ | ||
35 | |||
36 | The HIDRAW API | ||
37 | --------------- | ||
38 | |||
39 | read() | ||
40 | ------- | ||
41 | read() will read a queued report received from the HID device. On USB | ||
42 | devices, the reports read using read() are the reports sent from the device | ||
43 | on the INTERRUPT IN endpoint. By default, read() will block until there is | ||
44 | a report available to be read. read() can be made non-blocking, by passing | ||
45 | the O_NONBLOCK flag to open(), or by setting the O_NONBLOCK flag using | ||
46 | fcntl(). | ||
47 | |||
48 | On a device which uses numbered reports, the first byte of the returned data | ||
49 | will be the report number; the report data follows, beginning in the second | ||
50 | byte. For devices which do not use numbered reports, the report data | ||
51 | will begin at the first byte. | ||
52 | |||
53 | write() | ||
54 | -------- | ||
55 | The write() function will write a report to the device. For USB devices, if | ||
56 | the device has an INTERRUPT OUT endpoint, the report will be sent on that | ||
57 | endpoint. If it does not, the report will be sent over the control endpoint, | ||
58 | using a SET_REPORT transfer. | ||
59 | |||
60 | The first byte of the buffer passed to write() should be set to the report | ||
61 | number. If the device does not use numbered reports, the first byte should | ||
62 | be set to 0. The report data itself should begin at the second byte. | ||
63 | |||
64 | ioctl() | ||
65 | -------- | ||
66 | Hidraw supports the following ioctls: | ||
67 | |||
68 | HIDIOCGRDESCSIZE: Get Report Descriptor Size | ||
69 | This ioctl will get the size of the device's report descriptor. | ||
70 | |||
71 | HIDIOCGRDESC: Get Report Descriptor | ||
72 | This ioctl returns the device's report descriptor using a | ||
73 | hidraw_report_descriptor struct. Make sure to set the size field of the | ||
74 | hidraw_report_descriptor struct to the size returned from HIDIOCGRDESCSIZE. | ||
75 | |||
76 | HIDIOCGRAWINFO: Get Raw Info | ||
77 | This ioctl will return a hidraw_devinfo struct containing the bus type, the | ||
78 | vendor ID (VID), and product ID (PID) of the device. The bus type can be one | ||
79 | of: | ||
80 | BUS_USB | ||
81 | BUS_HIL | ||
82 | BUS_BLUETOOTH | ||
83 | BUS_VIRTUAL | ||
84 | which are defined in linux/input.h. | ||
85 | |||
86 | HIDIOCGRAWNAME(len): Get Raw Name | ||
87 | This ioctl returns a string containing the vendor and product strings of | ||
88 | the device. The returned string is Unicode, UTF-8 encoded. | ||
89 | |||
90 | HIDIOCGRAWPHYS(len): Get Physical Address | ||
91 | This ioctl returns a string representing the physical address of the device. | ||
92 | For USB devices, the string contains the physical path to the device (the | ||
93 | USB controller, hubs, ports, etc). For Bluetooth devices, the string | ||
94 | contains the hardware (MAC) address of the device. | ||
95 | |||
96 | HIDIOCSFEATURE(len): Send a Feature Report | ||
97 | This ioctl will send a feature report to the device. Per the HID | ||
98 | specification, feature reports are always sent using the control endpoint. | ||
99 | Set the first byte of the supplied buffer to the report number. For devices | ||
100 | which do not use numbered reports, set the first byte to 0. The report data | ||
101 | begins in the second byte. Make sure to set len accordingly, to one more | ||
102 | than the length of the report (to account for the report number). | ||
103 | |||
104 | HIDIOCGFEATURE(len): Get a Feature Report | ||
105 | This ioctl will request a feature report from the device using the control | ||
106 | endpoint. The first byte of the supplied buffer should be set to the report | ||
107 | number of the requested report. For devices which do not use numbered | ||
108 | reports, set the first byte to 0. The report will be returned starting at | ||
109 | the first byte of the buffer (ie: the report number is not returned). | ||
110 | |||
111 | Example | ||
112 | --------- | ||
113 | In samples/, find hid-example.c, which shows examples of read(), write(), | ||
114 | and all the ioctls for hidraw. The code may be used by anyone for any | ||
115 | purpose, and can serve as a starting point for developing applications using | ||
116 | hidraw. | ||
117 | |||
118 | Document by: | ||
119 | Alan Ott <alan@signal11.us>, Signal 11 Software | ||
diff --git a/Documentation/hwmon/adm1021 b/Documentation/hwmon/adm1021 index 03d02bfb3df1..02ad96cf9b2b 100644 --- a/Documentation/hwmon/adm1021 +++ b/Documentation/hwmon/adm1021 | |||
@@ -14,10 +14,6 @@ Supported chips: | |||
14 | Prefix: 'gl523sm' | 14 | Prefix: 'gl523sm' |
15 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | 15 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e |
16 | Datasheet: | 16 | Datasheet: |
17 | * Intel Xeon Processor | ||
18 | Prefix: - any other - may require 'force_adm1021' parameter | ||
19 | Addresses scanned: none | ||
20 | Datasheet: Publicly available at Intel website | ||
21 | * Maxim MAX1617 | 17 | * Maxim MAX1617 |
22 | Prefix: 'max1617' | 18 | Prefix: 'max1617' |
23 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e | 19 | Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e |
@@ -91,21 +87,27 @@ will do no harm, but will return 'old' values. It is possible to make | |||
91 | ADM1021-clones do faster measurements, but there is really no good reason | 87 | ADM1021-clones do faster measurements, but there is really no good reason |
92 | for that. | 88 | for that. |
93 | 89 | ||
94 | Xeon support | ||
95 | ------------ | ||
96 | 90 | ||
97 | Some Xeon processors have real max1617, adm1021, or compatible chips | 91 | Netburst-based Xeon support |
98 | within them, with two temperature sensors. | 92 | --------------------------- |
99 | 93 | ||
100 | Other Xeons have chips with only one sensor. | 94 | Some Xeon processors based on the Netburst (early Pentium 4, from 2001 to |
95 | 2003) microarchitecture had real MAX1617, ADM1021, or compatible chips | ||
96 | within them, with two temperature sensors. Other Xeon processors of this | ||
97 | era (with 400 MHz FSB) had chips with only one temperature sensor. | ||
101 | 98 | ||
102 | If you have a Xeon, and the adm1021 module loads, and both temperatures | 99 | If you have such an old Xeon, and you get two valid temperatures when |
103 | appear valid, then things are good. | 100 | loading the adm1021 module, then things are good. |
104 | 101 | ||
105 | If the adm1021 module doesn't load, you should try this: | 102 | If nothing happens when loading the adm1021 module, and you are certain |
106 | modprobe adm1021 force_adm1021=BUS,ADDRESS | 103 | that your specific Xeon processor model includes compatible sensors, you |
107 | ADDRESS can only be 0x18, 0x1a, 0x29, 0x2b, 0x4c, or 0x4e. | 104 | will have to explicitly instantiate the sensor chips from user-space. See |
105 | method 4 in Documentation/i2c/instantiating-devices. Possible slave | ||
106 | addresses are 0x18, 0x1a, 0x29, 0x2b, 0x4c, or 0x4e. It is likely that | ||
107 | only temp2 will be correct and temp1 will have to be ignored. | ||
108 | 108 | ||
109 | If you have dual Xeons you may have appear to have two separate | 109 | Previous generations of the Xeon processor (based on Pentium II/III) |
110 | adm1021-compatible chips, or two single-temperature sensors, at distinct | 110 | didn't have these sensors. Next generations of Xeon processors (533 MHz |
111 | addresses. | 111 | FSB and faster) lost them, until the Core-based generation which |
112 | introduced integrated digital thermal sensors. These are supported by | ||
113 | the coretemp driver. | ||
diff --git a/Documentation/hwmon/lm90 b/Documentation/hwmon/lm90 index fa475c0a48a3..f3efd18e87f4 100644 --- a/Documentation/hwmon/lm90 +++ b/Documentation/hwmon/lm90 | |||
@@ -32,6 +32,16 @@ Supported chips: | |||
32 | Addresses scanned: I2C 0x4c and 0x4d | 32 | Addresses scanned: I2C 0x4c and 0x4d |
33 | Datasheet: Publicly available at the ON Semiconductor website | 33 | Datasheet: Publicly available at the ON Semiconductor website |
34 | http://www.onsemi.com/PowerSolutions/product.do?id=ADT7461 | 34 | http://www.onsemi.com/PowerSolutions/product.do?id=ADT7461 |
35 | * Analog Devices ADT7461A | ||
36 | Prefix: 'adt7461a' | ||
37 | Addresses scanned: I2C 0x4c and 0x4d | ||
38 | Datasheet: Publicly available at the ON Semiconductor website | ||
39 | http://www.onsemi.com/PowerSolutions/product.do?id=ADT7461A | ||
40 | * ON Semiconductor NCT1008 | ||
41 | Prefix: 'nct1008' | ||
42 | Addresses scanned: I2C 0x4c and 0x4d | ||
43 | Datasheet: Publicly available at the ON Semiconductor website | ||
44 | http://www.onsemi.com/PowerSolutions/product.do?id=NCT1008 | ||
35 | * Maxim MAX6646 | 45 | * Maxim MAX6646 |
36 | Prefix: 'max6646' | 46 | Prefix: 'max6646' |
37 | Addresses scanned: I2C 0x4d | 47 | Addresses scanned: I2C 0x4d |
@@ -149,7 +159,7 @@ ADM1032: | |||
149 | * ALERT is triggered by open remote sensor. | 159 | * ALERT is triggered by open remote sensor. |
150 | * SMBus PEC support for Write Byte and Receive Byte transactions. | 160 | * SMBus PEC support for Write Byte and Receive Byte transactions. |
151 | 161 | ||
152 | ADT7461: | 162 | ADT7461, ADT7461A, NCT1008: |
153 | * Extended temperature range (breaks compatibility) | 163 | * Extended temperature range (breaks compatibility) |
154 | * Lower resolution for remote temperature | 164 | * Lower resolution for remote temperature |
155 | 165 | ||
@@ -195,9 +205,9 @@ are exported, one for each channel, but these values are of course linked. | |||
195 | Only the local hysteresis can be set from user-space, and the same delta | 205 | Only the local hysteresis can be set from user-space, and the same delta |
196 | applies to the remote hysteresis. | 206 | applies to the remote hysteresis. |
197 | 207 | ||
198 | The lm90 driver will not update its values more frequently than every | 208 | The lm90 driver will not update its values more frequently than configured with |
199 | other second; reading them more often will do no harm, but will return | 209 | the update_interval attribute; reading them more often will do no harm, but will |
200 | 'old' values. | 210 | return 'old' values. |
201 | 211 | ||
202 | SMBus Alert Support | 212 | SMBus Alert Support |
203 | ------------------- | 213 | ------------------- |
@@ -205,11 +215,12 @@ SMBus Alert Support | |||
205 | This driver has basic support for SMBus alert. When an alert is received, | 215 | This driver has basic support for SMBus alert. When an alert is received, |
206 | the status register is read and the faulty temperature channel is logged. | 216 | the status register is read and the faulty temperature channel is logged. |
207 | 217 | ||
208 | The Analog Devices chips (ADM1032 and ADT7461) do not implement the SMBus | 218 | The Analog Devices chips (ADM1032, ADT7461 and ADT7461A) and ON |
209 | alert protocol properly so additional care is needed: the ALERT output is | 219 | Semiconductor chips (NCT1008) do not implement the SMBus alert protocol |
210 | disabled when an alert is received, and is re-enabled only when the alarm | 220 | properly so additional care is needed: the ALERT output is disabled when |
211 | is gone. Otherwise the chip would block alerts from other chips in the bus | 221 | an alert is received, and is re-enabled only when the alarm is gone. |
212 | as long as the alarm is active. | 222 | Otherwise the chip would block alerts from other chips in the bus as long |
223 | as the alarm is active. | ||
213 | 224 | ||
214 | PEC Support | 225 | PEC Support |
215 | ----------- | 226 | ----------- |
diff --git a/Documentation/ja_JP/HOWTO b/Documentation/ja_JP/HOWTO index b63301a03811..050d37fe6d40 100644 --- a/Documentation/ja_JP/HOWTO +++ b/Documentation/ja_JP/HOWTO | |||
@@ -11,14 +11,14 @@ for non English (read: Japanese) speakers and is not intended as a | |||
11 | fork. So if you have any comments or updates for this file, please try | 11 | fork. So if you have any comments or updates for this file, please try |
12 | to update the original English file first. | 12 | to update the original English file first. |
13 | 13 | ||
14 | Last Updated: 2008/10/24 | 14 | Last Updated: 2011/03/31 |
15 | ================================== | 15 | ================================== |
16 | これは、 | 16 | これは、 |
17 | linux-2.6.28/Documentation/HOWTO | 17 | linux-2.6.38/Documentation/HOWTO |
18 | の和訳です。 | 18 | の和訳です。 |
19 | 19 | ||
20 | 翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > | 20 | 翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > |
21 | 翻訳日: 2008/10/24 | 21 | 翻訳日: 2011/3/28 |
22 | 翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> | 22 | 翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> |
23 | 校正者: 松倉さん <nbh--mats at nifty dot com> | 23 | 校正者: 松倉さん <nbh--mats at nifty dot com> |
24 | 小林 雅典さん (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> | 24 | 小林 雅典さん (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> |
@@ -256,8 +256,8 @@ Linux カーネルの開発プロセスは現在幾つかの異なるメイン | |||
256 | - メインの 2.6.x カーネルツリー | 256 | - メインの 2.6.x カーネルツリー |
257 | - 2.6.x.y -stable カーネルツリー | 257 | - 2.6.x.y -stable カーネルツリー |
258 | - 2.6.x -git カーネルパッチ | 258 | - 2.6.x -git カーネルパッチ |
259 | - 2.6.x -mm カーネルパッチ | ||
260 | - サブシステム毎のカーネルツリーとパッチ | 259 | - サブシステム毎のカーネルツリーとパッチ |
260 | - 統合テストのための 2.6.x -next カーネルツリー | ||
261 | 261 | ||
262 | 2.6.x カーネルツリー | 262 | 2.6.x カーネルツリー |
263 | ----------------- | 263 | ----------------- |
@@ -268,9 +268,9 @@ Linux カーネルの開発プロセスは現在幾つかの異なるメイン | |||
268 | 268 | ||
269 | - 新しいカーネルがリリースされた直後に、2週間の特別期間が設けられ、 | 269 | - 新しいカーネルがリリースされた直後に、2週間の特別期間が設けられ、 |
270 | この期間中に、メンテナ達は Linus に大きな差分を送ることができます。 | 270 | この期間中に、メンテナ達は Linus に大きな差分を送ることができます。 |
271 | このような差分は通常 -mm カーネルに数週間含まれてきたパッチです。 | 271 | このような差分は通常 -next カーネルに数週間含まれてきたパッチです。 |
272 | 大きな変更は git(カーネルのソース管理ツール、詳細は | 272 | 大きな変更は git(カーネルのソース管理ツール、詳細は |
273 | http://git.or.cz/ 参照) を使って送るのが好ましいやり方ですが、パッ | 273 | http://git-scm.com/ 参照) を使って送るのが好ましいやり方ですが、パッ |
274 | チファイルの形式のまま送るのでも十分です。 | 274 | チファイルの形式のまま送るのでも十分です。 |
275 | 275 | ||
276 | - 2週間後、-rc1 カーネルがリリースされ、この後にはカーネル全体の安定 | 276 | - 2週間後、-rc1 カーネルがリリースされ、この後にはカーネル全体の安定 |
@@ -333,86 +333,44 @@ git リポジトリで管理されているLinus のカーネルツリーの毎 | |||
333 | れは -rc カーネルと比べて、パッチが大丈夫かどうかも確認しないで自動的 | 333 | れは -rc カーネルと比べて、パッチが大丈夫かどうかも確認しないで自動的 |
334 | に生成されるので、より実験的です。 | 334 | に生成されるので、より実験的です。 |
335 | 335 | ||
336 | 2.6.x -mm カーネルパッチ | ||
337 | ------------------------ | ||
338 | |||
339 | Andrew Morton によってリリースされる実験的なカーネルパッチ群です。 | ||
340 | Andrew は個別のサブシステムカーネルツリーとパッチを全て集めてきて | ||
341 | linux-kernel メーリングリストで収集された多数のパッチと同時に一つにま | ||
342 | とめます。 | ||
343 | このツリーは新機能とパッチが検証される場となります。ある期間の間パッチ | ||
344 | が -mm に入って価値を証明されたら、Andrew やサブシステムメンテナが、 | ||
345 | メインラインへ入れるように Linus にプッシュします。 | ||
346 | |||
347 | メインカーネルツリーに含めるために Linus に送る前に、すべての新しいパッ | ||
348 | チが -mm ツリーでテストされることが強く推奨されています。マージウィン | ||
349 | ドウが開く前に -mm ツリーに現れなかったパッチはメインラインにマージさ | ||
350 | れることは困難になります。 | ||
351 | |||
352 | これらのカーネルは安定して動作すべきシステムとして使うのには適切ではあ | ||
353 | りませんし、カーネルブランチの中でももっとも動作にリスクが高いものです。 | ||
354 | |||
355 | もしあなたが、カーネル開発プロセスの支援をしたいと思っているのであれば、 | ||
356 | どうぞこれらのカーネルリリースをテストに使ってみて、そしてもし問題があ | ||
357 | れば、またもし全てが正しく動作したとしても、linux-kernel メーリングリ | ||
358 | ストにフィードバックを提供してください。 | ||
359 | |||
360 | すべての他の実験的パッチに加えて、これらのカーネルは通常リリース時点で | ||
361 | メインラインの -git カーネルに含まれる全ての変更も含んでいます。 | ||
362 | |||
363 | -mm カーネルは決まったスケジュールではリリースされません、しかし通常幾 | ||
364 | つかの -mm カーネル (1 から 3 が普通)が各-rc カーネルの間にリリースさ | ||
365 | れます。 | ||
366 | |||
367 | サブシステム毎のカーネルツリーとパッチ | 336 | サブシステム毎のカーネルツリーとパッチ |
368 | ------------------------------------------- | 337 | ------------------------------------------- |
369 | 338 | ||
370 | カーネルの様々な領域で何が起きているかを見られるようにするため、多くの | 339 | それぞれのカーネルサブシステムのメンテナ達は --- そして多くのカーネル |
371 | カーネルサブシステム開発者は彼らの開発ツリーを公開しています。これらの | 340 | サブシステムの開発者達も --- 各自の最新の開発状況をソースリポジトリに |
372 | ツリーは説明したように -mm カーネルリリースに入れ込まれます。 | 341 | 公開しています。そのため、自分とは異なる領域のカーネルで何が起きている |
373 | 342 | かを他の人が見られるようになっています。開発が早く進んでいる領域では、 | |
374 | 以下はさまざまなカーネルツリーの中のいくつかのリスト- | 343 | 開発者は自身の投稿がどのサブシステムカーネルツリーを元にしているか質問 |
375 | 344 | されるので、その投稿とすでに進行中の他の作業との衝突が避けられます。 | |
376 | git ツリー- | 345 | |
377 | - Kbuild の開発ツリー、Sam Ravnborg <sam@ravnborg.org> | 346 | 大部分のこれらのリポジトリは git ツリーです。しかしその他の SCM や |
378 | git.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild.git | 347 | quilt シリーズとして公開されているパッチキューも使われています。これら |
379 | 348 | のサブシステムリポジトリのアドレスは MAINTAINERS ファイルにリストされ | |
380 | - ACPI の開発ツリー、 Len Brown <len.brown@intel.com> | 349 | ています。これらの多くは http://git.kernel.org/ で参照することができま |
381 | git.kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git | 350 | す。 |
382 | |||
383 | - Block の開発ツリー、Jens Axboe <axboe@suse.de> | ||
384 | git.kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git | ||
385 | |||
386 | - DRM の開発ツリー、Dave Airlie <airlied@linux.ie> | ||
387 | git.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6.git | ||
388 | |||
389 | - ia64 の開発ツリー、Tony Luck <tony.luck@intel.com> | ||
390 | git.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git | ||
391 | |||
392 | - infiniband, Roland Dreier <rolandd@cisco.com> | ||
393 | git.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git | ||
394 | |||
395 | - libata, Jeff Garzik <jgarzik@pobox.com> | ||
396 | git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git | ||
397 | |||
398 | - ネットワークドライバ, Jeff Garzik <jgarzik@pobox.com> | ||
399 | git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git | ||
400 | |||
401 | - pcmcia, Dominik Brodowski <linux@dominikbrodowski.net> | ||
402 | git.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git | ||
403 | |||
404 | - SCSI, James Bottomley <James.Bottomley@hansenpartnership.com> | ||
405 | git.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git | ||
406 | |||
407 | - x86, Ingo Molnar <mingo@elte.hu> | ||
408 | git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git | ||
409 | |||
410 | quilt ツリー- | ||
411 | - USB, ドライバコアと I2C, Greg Kroah-Hartman <gregkh@suse.de> | ||
412 | kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ | ||
413 | 351 | ||
414 | その他のカーネルツリーは http://git.kernel.org/ と MAINTAINERS ファ | 352 | 提案されたパッチがこのようなサブシステムツリーにコミットされる前に、メー |
415 | イルに一覧表があります。 | 353 | リングリストで事前にレビューにかけられます(以下の対応するセクションを |
354 | 参照)。いくつかのカーネルサブシステムでは、このレビューは patchwork | ||
355 | というツールによって追跡されます。Patchwork は web インターフェイスに | ||
356 | よってパッチ投稿の表示、パッチへのコメント付けや改訂などができ、そして | ||
357 | メンテナはパッチに対して、レビュー中、受付済み、拒否というようなマーク | ||
358 | をつけることができます。大部分のこれらの patchwork のサイトは | ||
359 | http://patchwork.kernel.org/ でリストされています。 | ||
360 | |||
361 | 統合テストのための 2.6.x -next カーネルツリー | ||
362 | --------------------------------------------- | ||
363 | |||
364 | サブシステムツリーの更新内容がメインラインの 2.6.x ツリーにマージされ | ||
365 | る前に、それらは統合テストされる必要があります。この目的のため、実質的 | ||
366 | に全サブシステムツリーからほぼ毎日プルされてできる特別なテスト用のリ | ||
367 | ポジトリが存在します- | ||
368 | http://git.kernel.org/?p=linux/kernel/git/sfr/linux-next.git | ||
369 | http://linux.f-seidel.de/linux-next/pmwiki/ | ||
370 | |||
371 | このやり方によって、-next カーネルは次のマージ機会でどんなものがメイン | ||
372 | ラインカーネルにマージされるか、おおまかなの展望を提供します。-next | ||
373 | カーネルの実行テストを行う冒険好きなテスターは大いに歓迎されます | ||
416 | 374 | ||
417 | バグレポート | 375 | バグレポート |
418 | ------------- | 376 | ------------- |
@@ -673,10 +631,9 @@ Linux カーネルコミュニティは、一度に大量のコードの塊を | |||
673 | じところからスタートしたのですから。 | 631 | じところからスタートしたのですから。 |
674 | 632 | ||
675 | Paolo Ciarrocchi に感謝、彼は彼の書いた "Development Process" | 633 | Paolo Ciarrocchi に感謝、彼は彼の書いた "Development Process" |
676 | (http://linux.tar.bz/articles/2.6-development_process)セクショ | 634 | (http://lwn.net/Articles/94386/) セクションをこのテキストの原型にする |
677 | ンをこのテキストの原型にすることを許可してくれました。 | 635 | ことを許可してくれました。Rundy Dunlap と Gerrit Huizenga はメーリング |
678 | Rundy Dunlap と Gerrit Huizenga はメーリングリストでやるべきこととやっ | 636 | リストでやるべきこととやってはいけないことのリストを提供してくれました。 |
679 | てはいけないことのリストを提供してくれました。 | ||
680 | 以下の人々のレビュー、コメント、貢献に感謝。 | 637 | 以下の人々のレビュー、コメント、貢献に感謝。 |
681 | Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers, | 638 | Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers, |
682 | Vojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook, Andrew Morton, Andi | 639 | Vojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook, Andrew Morton, Andi |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index cc85a9278190..c603ef7b0568 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -245,7 +245,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
245 | 245 | ||
246 | acpi_sleep= [HW,ACPI] Sleep options | 246 | acpi_sleep= [HW,ACPI] Sleep options |
247 | Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig, | 247 | Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig, |
248 | old_ordering, s4_nonvs, sci_force_enable } | 248 | old_ordering, nonvs, sci_force_enable } |
249 | See Documentation/power/video.txt for information on | 249 | See Documentation/power/video.txt for information on |
250 | s3_bios and s3_mode. | 250 | s3_bios and s3_mode. |
251 | s3_beep is for debugging; it makes the PC's speaker beep | 251 | s3_beep is for debugging; it makes the PC's speaker beep |
@@ -1664,6 +1664,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1664 | noexec=on: enable non-executable mappings (default) | 1664 | noexec=on: enable non-executable mappings (default) |
1665 | noexec=off: disable non-executable mappings | 1665 | noexec=off: disable non-executable mappings |
1666 | 1666 | ||
1667 | nosmep [X86] | ||
1668 | Disable SMEP (Supervisor Mode Execution Protection) | ||
1669 | even if it is supported by processor. | ||
1670 | |||
1667 | noexec32 [X86-64] | 1671 | noexec32 [X86-64] |
1668 | This affects only 32-bit executables. | 1672 | This affects only 32-bit executables. |
1669 | noexec32=on: enable non-executable mappings (default) | 1673 | noexec32=on: enable non-executable mappings (default) |
diff --git a/Documentation/networking/batman-adv.txt b/Documentation/networking/batman-adv.txt index ee496eb2f4a6..88d4afbdef98 100644 --- a/Documentation/networking/batman-adv.txt +++ b/Documentation/networking/batman-adv.txt | |||
@@ -1,4 +1,4 @@ | |||
1 | [state: 27-01-2011] | 1 | [state: 17-04-2011] |
2 | 2 | ||
3 | BATMAN-ADV | 3 | BATMAN-ADV |
4 | ---------- | 4 | ---------- |
@@ -19,6 +19,7 @@ duce the overhead to a minimum. It does not depend on any (other) | |||
19 | network driver, and can be used on wifi as well as ethernet lan, | 19 | network driver, and can be used on wifi as well as ethernet lan, |
20 | vpn, etc ... (anything with ethernet-style layer 2). | 20 | vpn, etc ... (anything with ethernet-style layer 2). |
21 | 21 | ||
22 | |||
22 | CONFIGURATION | 23 | CONFIGURATION |
23 | ------------- | 24 | ------------- |
24 | 25 | ||
@@ -160,13 +161,13 @@ face. Each entry can/has to have the following values: | |||
160 | -> "TQ mac value" - src mac's link quality towards mac address | 161 | -> "TQ mac value" - src mac's link quality towards mac address |
161 | of a neighbor originator's interface which | 162 | of a neighbor originator's interface which |
162 | is being used for routing | 163 | is being used for routing |
163 | -> "HNA mac" - HNA announced by source mac | 164 | -> "TT mac" - TT announced by source mac |
164 | -> "PRIMARY" - this is a primary interface | 165 | -> "PRIMARY" - this is a primary interface |
165 | -> "SEC mac" - secondary mac address of source | 166 | -> "SEC mac" - secondary mac address of source |
166 | (requires preceding PRIMARY) | 167 | (requires preceding PRIMARY) |
167 | 168 | ||
168 | The TQ value has a range from 4 to 255 with 255 being the best. | 169 | The TQ value has a range from 4 to 255 with 255 being the best. |
169 | The HNA entries are showing which hosts are connected to the mesh | 170 | The TT entries are showing which hosts are connected to the mesh |
170 | via bat0 or being bridged into the mesh network. The PRIMARY/SEC | 171 | via bat0 or being bridged into the mesh network. The PRIMARY/SEC |
171 | values are only applied on primary interfaces | 172 | values are only applied on primary interfaces |
172 | 173 | ||
@@ -199,7 +200,7 @@ abled during run time. Following log_levels are defined: | |||
199 | 200 | ||
200 | 0 - All debug output disabled | 201 | 0 - All debug output disabled |
201 | 1 - Enable messages related to routing / flooding / broadcasting | 202 | 1 - Enable messages related to routing / flooding / broadcasting |
202 | 2 - Enable route or hna added / changed / deleted | 203 | 2 - Enable route or tt entry added / changed / deleted |
203 | 3 - Enable all messages | 204 | 3 - Enable all messages |
204 | 205 | ||
205 | The debug output can be changed at runtime using the file | 206 | The debug output can be changed at runtime using the file |
@@ -207,7 +208,7 @@ The debug output can be changed at runtime using the file | |||
207 | 208 | ||
208 | # echo 2 > /sys/class/net/bat0/mesh/log_level | 209 | # echo 2 > /sys/class/net/bat0/mesh/log_level |
209 | 210 | ||
210 | will enable debug messages for when routes or HNAs change. | 211 | will enable debug messages for when routes or TTs change. |
211 | 212 | ||
212 | 213 | ||
213 | BATCTL | 214 | BATCTL |
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index e27202bb8d75..1f45bd887d65 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | 1 | ||
2 | Linux Ethernet Bonding Driver HOWTO | 2 | Linux Ethernet Bonding Driver HOWTO |
3 | 3 | ||
4 | Latest update: 23 September 2009 | 4 | Latest update: 27 April 2011 |
5 | 5 | ||
6 | Initial release : Thomas Davis <tadavis at lbl.gov> | 6 | Initial release : Thomas Davis <tadavis at lbl.gov> |
7 | Corrections, HA extensions : 2000/10/03-15 : | 7 | Corrections, HA extensions : 2000/10/03-15 : |
@@ -585,25 +585,23 @@ mode | |||
585 | chosen. | 585 | chosen. |
586 | 586 | ||
587 | num_grat_arp | 587 | num_grat_arp |
588 | |||
589 | Specifies the number of gratuitous ARPs to be issued after a | ||
590 | failover event. One gratuitous ARP is issued immediately after | ||
591 | the failover, subsequent ARPs are sent at a rate of one per link | ||
592 | monitor interval (arp_interval or miimon, whichever is active). | ||
593 | |||
594 | The valid range is 0 - 255; the default value is 1. This option | ||
595 | affects only the active-backup mode. This option was added for | ||
596 | bonding version 3.3.0. | ||
597 | |||
598 | num_unsol_na | 588 | num_unsol_na |
599 | 589 | ||
600 | Specifies the number of unsolicited IPv6 Neighbor Advertisements | 590 | Specify the number of peer notifications (gratuitous ARPs and |
601 | to be issued after a failover event. One unsolicited NA is issued | 591 | unsolicited IPv6 Neighbor Advertisements) to be issued after a |
602 | immediately after the failover. | 592 | failover event. As soon as the link is up on the new slave |
603 | 593 | (possibly immediately) a peer notification is sent on the | |
604 | The valid range is 0 - 255; the default value is 1. This option | 594 | bonding device and each VLAN sub-device. This is repeated at |
605 | affects only the active-backup mode. This option was added for | 595 | each link monitor interval (arp_interval or miimon, whichever |
606 | bonding version 3.4.0. | 596 | is active) if the number is greater than 1. |
597 | |||
598 | The valid range is 0 - 255; the default value is 1. These options | ||
599 | affect only the active-backup mode. These options were added for | ||
600 | bonding versions 3.3.0 and 3.4.0 respectively. | ||
601 | |||
602 | From Linux 2.6.40 and bonding version 3.7.1, these notifications | ||
603 | are generated by the ipv4 and ipv6 code and the numbers of | ||
604 | repetitions cannot be set independently. | ||
607 | 605 | ||
608 | primary | 606 | primary |
609 | 607 | ||
diff --git a/Documentation/networking/igb.txt b/Documentation/networking/igb.txt index 98953c0d5342..9a2a037194a5 100644 --- a/Documentation/networking/igb.txt +++ b/Documentation/networking/igb.txt | |||
@@ -93,6 +93,19 @@ Additional Configurations | |||
93 | REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not | 93 | REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not |
94 | found, the system will fallback to MSI or to Legacy interrupts. | 94 | found, the system will fallback to MSI or to Legacy interrupts. |
95 | 95 | ||
96 | MAC and VLAN anti-spoofing feature | ||
97 | ---------------------------------- | ||
98 | When a malicious driver attempts to send a spoofed packet, it is dropped by | ||
99 | the hardware and not transmitted. An interrupt is sent to the PF driver | ||
100 | notifying it of the spoof attempt. | ||
101 | |||
102 | When a spoofed packet is detected the PF driver will send the following | ||
103 | message to the system log (displayed by the "dmesg" command): | ||
104 | |||
105 | Spoof event(s) detected on VF(n) | ||
106 | |||
107 | Where n=the VF that attempted to do the spoofing. | ||
108 | |||
96 | Support | 109 | Support |
97 | ======= | 110 | ======= |
98 | 111 | ||
diff --git a/Documentation/power/devices.txt b/Documentation/power/devices.txt index 1971bcf48a60..88880839ece4 100644 --- a/Documentation/power/devices.txt +++ b/Documentation/power/devices.txt | |||
@@ -279,11 +279,15 @@ When the system goes into the standby or memory sleep state, the phases are: | |||
279 | time.) Unlike the other suspend-related phases, during the prepare | 279 | time.) Unlike the other suspend-related phases, during the prepare |
280 | phase the device tree is traversed top-down. | 280 | phase the device tree is traversed top-down. |
281 | 281 | ||
282 | The prepare phase uses only a bus callback. After the callback method | 282 | In addition to that, if device drivers need to allocate additional |
283 | returns, no new children may be registered below the device. The method | 283 | memory to be able to hadle device suspend correctly, that should be |
284 | may also prepare the device or driver in some way for the upcoming | 284 | done in the prepare phase. |
285 | system power transition, but it should not put the device into a | 285 | |
286 | low-power state. | 286 | After the prepare callback method returns, no new children may be |
287 | registered below the device. The method may also prepare the device or | ||
288 | driver in some way for the upcoming system power transition (for | ||
289 | example, by allocating additional memory required for this purpose), but | ||
290 | it should not put the device into a low-power state. | ||
287 | 291 | ||
288 | 2. The suspend methods should quiesce the device to stop it from performing | 292 | 2. The suspend methods should quiesce the device to stop it from performing |
289 | I/O. They also may save the device registers and put it into the | 293 | I/O. They also may save the device registers and put it into the |
diff --git a/Documentation/power/notifiers.txt b/Documentation/power/notifiers.txt index cf980709122a..c2a4a346c0d9 100644 --- a/Documentation/power/notifiers.txt +++ b/Documentation/power/notifiers.txt | |||
@@ -1,46 +1,41 @@ | |||
1 | Suspend notifiers | 1 | Suspend notifiers |
2 | (C) 2007 Rafael J. Wysocki <rjw@sisk.pl>, GPL | 2 | (C) 2007-2011 Rafael J. Wysocki <rjw@sisk.pl>, GPL |
3 | 3 | ||
4 | There are some operations that device drivers may want to carry out in their | 4 | There are some operations that subsystems or drivers may want to carry out |
5 | .suspend() routines, but shouldn't, because they can cause the hibernation or | 5 | before hibernation/suspend or after restore/resume, but they require the system |
6 | suspend to fail. For example, a driver may want to allocate a substantial amount | 6 | to be fully functional, so the drivers' and subsystems' .suspend() and .resume() |
7 | of memory (like 50 MB) in .suspend(), but that shouldn't be done after the | 7 | or even .prepare() and .complete() callbacks are not suitable for this purpose. |
8 | swsusp's memory shrinker has run. | 8 | For example, device drivers may want to upload firmware to their devices after |
9 | 9 | resume/restore, but they cannot do it by calling request_firmware() from their | |
10 | Also, there may be some operations, that subsystems want to carry out before a | 10 | .resume() or .complete() routines (user land processes are frozen at these |
11 | hibernation/suspend or after a restore/resume, requiring the system to be fully | 11 | points). The solution may be to load the firmware into memory before processes |
12 | functional, so the drivers' .suspend() and .resume() routines are not suitable | 12 | are frozen and upload it from there in the .resume() routine. |
13 | for this purpose. For example, device drivers may want to upload firmware to | 13 | A suspend/hibernation notifier may be used for this purpose. |
14 | their devices after a restore from a hibernation image, but they cannot do it by | 14 | |
15 | calling request_firmware() from their .resume() routines (user land processes | 15 | The subsystems or drivers having such needs can register suspend notifiers that |
16 | are frozen at this point). The solution may be to load the firmware into | 16 | will be called upon the following events by the PM core: |
17 | memory before processes are frozen and upload it from there in the .resume() | ||
18 | routine. Of course, a hibernation notifier may be used for this purpose. | ||
19 | |||
20 | The subsystems that have such needs can register suspend notifiers that will be | ||
21 | called upon the following events by the suspend core: | ||
22 | 17 | ||
23 | PM_HIBERNATION_PREPARE The system is going to hibernate or suspend, tasks will | 18 | PM_HIBERNATION_PREPARE The system is going to hibernate or suspend, tasks will |
24 | be frozen immediately. | 19 | be frozen immediately. |
25 | 20 | ||
26 | PM_POST_HIBERNATION The system memory state has been restored from a | 21 | PM_POST_HIBERNATION The system memory state has been restored from a |
27 | hibernation image or an error occurred during the | 22 | hibernation image or an error occurred during |
28 | hibernation. Device drivers' .resume() callbacks have | 23 | hibernation. Device drivers' restore callbacks have |
29 | been executed and tasks have been thawed. | 24 | been executed and tasks have been thawed. |
30 | 25 | ||
31 | PM_RESTORE_PREPARE The system is going to restore a hibernation image. | 26 | PM_RESTORE_PREPARE The system is going to restore a hibernation image. |
32 | If all goes well the restored kernel will issue a | 27 | If all goes well, the restored kernel will issue a |
33 | PM_POST_HIBERNATION notification. | 28 | PM_POST_HIBERNATION notification. |
34 | 29 | ||
35 | PM_POST_RESTORE An error occurred during the hibernation restore. | 30 | PM_POST_RESTORE An error occurred during restore from hibernation. |
36 | Device drivers' .resume() callbacks have been executed | 31 | Device drivers' restore callbacks have been executed |
37 | and tasks have been thawed. | 32 | and tasks have been thawed. |
38 | 33 | ||
39 | PM_SUSPEND_PREPARE The system is preparing for a suspend. | 34 | PM_SUSPEND_PREPARE The system is preparing for suspend. |
40 | 35 | ||
41 | PM_POST_SUSPEND The system has just resumed or an error occurred during | 36 | PM_POST_SUSPEND The system has just resumed or an error occurred during |
42 | the suspend. Device drivers' .resume() callbacks have | 37 | suspend. Device drivers' resume callbacks have been |
43 | been executed and tasks have been thawed. | 38 | executed and tasks have been thawed. |
44 | 39 | ||
45 | It is generally assumed that whatever the notifiers do for | 40 | It is generally assumed that whatever the notifiers do for |
46 | PM_HIBERNATION_PREPARE, should be undone for PM_POST_HIBERNATION. Analogously, | 41 | PM_HIBERNATION_PREPARE, should be undone for PM_POST_HIBERNATION. Analogously, |
diff --git a/Documentation/scsi/LICENSE.qla2xxx b/Documentation/scsi/LICENSE.qla2xxx index 9e15b4f9cd28..19e7cd4bba66 100644 --- a/Documentation/scsi/LICENSE.qla2xxx +++ b/Documentation/scsi/LICENSE.qla2xxx | |||
@@ -1,11 +1,11 @@ | |||
1 | Copyright (c) 2003-2005 QLogic Corporation | 1 | Copyright (c) 2003-2011 QLogic Corporation |
2 | QLogic Linux Fibre Channel HBA Driver | 2 | QLogic Linux/ESX Fibre Channel HBA Driver |
3 | 3 | ||
4 | This program includes a device driver for Linux 2.6 that may be | 4 | This program includes a device driver for Linux 2.6/ESX that may be |
5 | distributed with QLogic hardware specific firmware binary file. | 5 | distributed with QLogic hardware specific firmware binary file. |
6 | You may modify and redistribute the device driver code under the | 6 | You may modify and redistribute the device driver code under the |
7 | GNU General Public License as published by the Free Software | 7 | GNU General Public License (a copy of which is attached hereto as |
8 | Foundation (version 2 or a later version). | 8 | Exhibit A) published by the Free Software Foundation (version 2). |
9 | 9 | ||
10 | You may redistribute the hardware specific firmware binary file | 10 | You may redistribute the hardware specific firmware binary file |
11 | under the following terms: | 11 | under the following terms: |
@@ -43,3 +43,285 @@ OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT, | |||
43 | TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN | 43 | TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN |
44 | ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN | 44 | ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN |
45 | COMBINATION WITH THIS PROGRAM. | 45 | COMBINATION WITH THIS PROGRAM. |
46 | |||
47 | |||
48 | EXHIBIT A | ||
49 | |||
50 | GNU GENERAL PUBLIC LICENSE | ||
51 | Version 2, June 1991 | ||
52 | |||
53 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. | ||
54 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
55 | Everyone is permitted to copy and distribute verbatim copies | ||
56 | of this license document, but changing it is not allowed. | ||
57 | |||
58 | Preamble | ||
59 | |||
60 | The licenses for most software are designed to take away your | ||
61 | freedom to share and change it. By contrast, the GNU General Public | ||
62 | License is intended to guarantee your freedom to share and change free | ||
63 | software--to make sure the software is free for all its users. This | ||
64 | General Public License applies to most of the Free Software | ||
65 | Foundation's software and to any other program whose authors commit to | ||
66 | using it. (Some other Free Software Foundation software is covered by | ||
67 | the GNU Lesser General Public License instead.) You can apply it to | ||
68 | your programs, too. | ||
69 | |||
70 | When we speak of free software, we are referring to freedom, not | ||
71 | price. Our General Public Licenses are designed to make sure that you | ||
72 | have the freedom to distribute copies of free software (and charge for | ||
73 | this service if you wish), that you receive source code or can get it | ||
74 | if you want it, that you can change the software or use pieces of it | ||
75 | in new free programs; and that you know you can do these things. | ||
76 | |||
77 | To protect your rights, we need to make restrictions that forbid | ||
78 | anyone to deny you these rights or to ask you to surrender the rights. | ||
79 | These restrictions translate to certain responsibilities for you if you | ||
80 | distribute copies of the software, or if you modify it. | ||
81 | |||
82 | For example, if you distribute copies of such a program, whether | ||
83 | gratis or for a fee, you must give the recipients all the rights that | ||
84 | you have. You must make sure that they, too, receive or can get the | ||
85 | source code. And you must show them these terms so they know their | ||
86 | rights. | ||
87 | |||
88 | We protect your rights with two steps: (1) copyright the software, and | ||
89 | (2) offer you this license which gives you legal permission to copy, | ||
90 | distribute and/or modify the software. | ||
91 | |||
92 | Also, for each author's protection and ours, we want to make certain | ||
93 | that everyone understands that there is no warranty for this free | ||
94 | software. If the software is modified by someone else and passed on, we | ||
95 | want its recipients to know that what they have is not the original, so | ||
96 | that any problems introduced by others will not reflect on the original | ||
97 | authors' reputations. | ||
98 | |||
99 | Finally, any free program is threatened constantly by software | ||
100 | patents. We wish to avoid the danger that redistributors of a free | ||
101 | program will individually obtain patent licenses, in effect making the | ||
102 | program proprietary. To prevent this, we have made it clear that any | ||
103 | patent must be licensed for everyone's free use or not licensed at all. | ||
104 | |||
105 | The precise terms and conditions for copying, distribution and | ||
106 | modification follow. | ||
107 | |||
108 | GNU GENERAL PUBLIC LICENSE | ||
109 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
110 | |||
111 | 0. This License applies to any program or other work which contains | ||
112 | a notice placed by the copyright holder saying it may be distributed | ||
113 | under the terms of this General Public License. The "Program", below, | ||
114 | refers to any such program or work, and a "work based on the Program" | ||
115 | means either the Program or any derivative work under copyright law: | ||
116 | that is to say, a work containing the Program or a portion of it, | ||
117 | either verbatim or with modifications and/or translated into another | ||
118 | language. (Hereinafter, translation is included without limitation in | ||
119 | the term "modification".) Each licensee is addressed as "you". | ||
120 | |||
121 | Activities other than copying, distribution and modification are not | ||
122 | covered by this License; they are outside its scope. The act of | ||
123 | running the Program is not restricted, and the output from the Program | ||
124 | is covered only if its contents constitute a work based on the | ||
125 | Program (independent of having been made by running the Program). | ||
126 | Whether that is true depends on what the Program does. | ||
127 | |||
128 | 1. You may copy and distribute verbatim copies of the Program's | ||
129 | source code as you receive it, in any medium, provided that you | ||
130 | conspicuously and appropriately publish on each copy an appropriate | ||
131 | copyright notice and disclaimer of warranty; keep intact all the | ||
132 | notices that refer to this License and to the absence of any warranty; | ||
133 | and give any other recipients of the Program a copy of this License | ||
134 | along with the Program. | ||
135 | |||
136 | You may charge a fee for the physical act of transferring a copy, and | ||
137 | you may at your option offer warranty protection in exchange for a fee. | ||
138 | |||
139 | 2. You may modify your copy or copies of the Program or any portion | ||
140 | of it, thus forming a work based on the Program, and copy and | ||
141 | distribute such modifications or work under the terms of Section 1 | ||
142 | above, provided that you also meet all of these conditions: | ||
143 | |||
144 | a) You must cause the modified files to carry prominent notices | ||
145 | stating that you changed the files and the date of any change. | ||
146 | |||
147 | b) You must cause any work that you distribute or publish, that in | ||
148 | whole or in part contains or is derived from the Program or any | ||
149 | part thereof, to be licensed as a whole at no charge to all third | ||
150 | parties under the terms of this License. | ||
151 | |||
152 | c) If the modified program normally reads commands interactively | ||
153 | when run, you must cause it, when started running for such | ||
154 | interactive use in the most ordinary way, to print or display an | ||
155 | announcement including an appropriate copyright notice and a | ||
156 | notice that there is no warranty (or else, saying that you provide | ||
157 | a warranty) and that users may redistribute the program under | ||
158 | these conditions, and telling the user how to view a copy of this | ||
159 | License. (Exception: if the Program itself is interactive but | ||
160 | does not normally print such an announcement, your work based on | ||
161 | the Program is not required to print an announcement.) | ||
162 | |||
163 | These requirements apply to the modified work as a whole. If | ||
164 | identifiable sections of that work are not derived from the Program, | ||
165 | and can be reasonably considered independent and separate works in | ||
166 | themselves, then this License, and its terms, do not apply to those | ||
167 | sections when you distribute them as separate works. But when you | ||
168 | distribute the same sections as part of a whole which is a work based | ||
169 | on the Program, the distribution of the whole must be on the terms of | ||
170 | this License, whose permissions for other licensees extend to the | ||
171 | entire whole, and thus to each and every part regardless of who wrote it. | ||
172 | |||
173 | Thus, it is not the intent of this section to claim rights or contest | ||
174 | your rights to work written entirely by you; rather, the intent is to | ||
175 | exercise the right to control the distribution of derivative or | ||
176 | collective works based on the Program. | ||
177 | |||
178 | In addition, mere aggregation of another work not based on the Program | ||
179 | with the Program (or with a work based on the Program) on a volume of | ||
180 | a storage or distribution medium does not bring the other work under | ||
181 | the scope of this License. | ||
182 | |||
183 | 3. You may copy and distribute the Program (or a work based on it, | ||
184 | under Section 2) in object code or executable form under the terms of | ||
185 | Sections 1 and 2 above provided that you also do one of the following: | ||
186 | |||
187 | a) Accompany it with the complete corresponding machine-readable | ||
188 | source code, which must be distributed under the terms of Sections | ||
189 | 1 and 2 above on a medium customarily used for software interchange; or, | ||
190 | |||
191 | b) Accompany it with a written offer, valid for at least three | ||
192 | years, to give any third party, for a charge no more than your | ||
193 | cost of physically performing source distribution, a complete | ||
194 | machine-readable copy of the corresponding source code, to be | ||
195 | distributed under the terms of Sections 1 and 2 above on a medium | ||
196 | customarily used for software interchange; or, | ||
197 | |||
198 | c) Accompany it with the information you received as to the offer | ||
199 | to distribute corresponding source code. (This alternative is | ||
200 | allowed only for noncommercial distribution and only if you | ||
201 | received the program in object code or executable form with such | ||
202 | an offer, in accord with Subsection b above.) | ||
203 | |||
204 | The source code for a work means the preferred form of the work for | ||
205 | making modifications to it. For an executable work, complete source | ||
206 | code means all the source code for all modules it contains, plus any | ||
207 | associated interface definition files, plus the scripts used to | ||
208 | control compilation and installation of the executable. However, as a | ||
209 | special exception, the source code distributed need not include | ||
210 | anything that is normally distributed (in either source or binary | ||
211 | form) with the major components (compiler, kernel, and so on) of the | ||
212 | operating system on which the executable runs, unless that component | ||
213 | itself accompanies the executable. | ||
214 | |||
215 | If distribution of executable or object code is made by offering | ||
216 | access to copy from a designated place, then offering equivalent | ||
217 | access to copy the source code from the same place counts as | ||
218 | distribution of the source code, even though third parties are not | ||
219 | compelled to copy the source along with the object code. | ||
220 | |||
221 | 4. You may not copy, modify, sublicense, or distribute the Program | ||
222 | except as expressly provided under this License. Any attempt | ||
223 | otherwise to copy, modify, sublicense or distribute the Program is | ||
224 | void, and will automatically terminate your rights under this License. | ||
225 | However, parties who have received copies, or rights, from you under | ||
226 | this License will not have their licenses terminated so long as such | ||
227 | parties remain in full compliance. | ||
228 | |||
229 | 5. You are not required to accept this License, since you have not | ||
230 | signed it. However, nothing else grants you permission to modify or | ||
231 | distribute the Program or its derivative works. These actions are | ||
232 | prohibited by law if you do not accept this License. Therefore, by | ||
233 | modifying or distributing the Program (or any work based on the | ||
234 | Program), you indicate your acceptance of this License to do so, and | ||
235 | all its terms and conditions for copying, distributing or modifying | ||
236 | the Program or works based on it. | ||
237 | |||
238 | 6. Each time you redistribute the Program (or any work based on the | ||
239 | Program), the recipient automatically receives a license from the | ||
240 | original licensor to copy, distribute or modify the Program subject to | ||
241 | these terms and conditions. You may not impose any further | ||
242 | restrictions on the recipients' exercise of the rights granted herein. | ||
243 | You are not responsible for enforcing compliance by third parties to | ||
244 | this License. | ||
245 | |||
246 | 7. If, as a consequence of a court judgment or allegation of patent | ||
247 | infringement or for any other reason (not limited to patent issues), | ||
248 | conditions are imposed on you (whether by court order, agreement or | ||
249 | otherwise) that contradict the conditions of this License, they do not | ||
250 | excuse you from the conditions of this License. If you cannot | ||
251 | distribute so as to satisfy simultaneously your obligations under this | ||
252 | License and any other pertinent obligations, then as a consequence you | ||
253 | may not distribute the Program at all. For example, if a patent | ||
254 | license would not permit royalty-free redistribution of the Program by | ||
255 | all those who receive copies directly or indirectly through you, then | ||
256 | the only way you could satisfy both it and this License would be to | ||
257 | refrain entirely from distribution of the Program. | ||
258 | |||
259 | If any portion of this section is held invalid or unenforceable under | ||
260 | any particular circumstance, the balance of the section is intended to | ||
261 | apply and the section as a whole is intended to apply in other | ||
262 | circumstances. | ||
263 | |||
264 | It is not the purpose of this section to induce you to infringe any | ||
265 | patents or other property right claims or to contest validity of any | ||
266 | such claims; this section has the sole purpose of protecting the | ||
267 | integrity of the free software distribution system, which is | ||
268 | implemented by public license practices. Many people have made | ||
269 | generous contributions to the wide range of software distributed | ||
270 | through that system in reliance on consistent application of that | ||
271 | system; it is up to the author/donor to decide if he or she is willing | ||
272 | to distribute software through any other system and a licensee cannot | ||
273 | impose that choice. | ||
274 | |||
275 | This section is intended to make thoroughly clear what is believed to | ||
276 | be a consequence of the rest of this License. | ||
277 | |||
278 | 8. If the distribution and/or use of the Program is restricted in | ||
279 | certain countries either by patents or by copyrighted interfaces, the | ||
280 | original copyright holder who places the Program under this License | ||
281 | may add an explicit geographical distribution limitation excluding | ||
282 | those countries, so that distribution is permitted only in or among | ||
283 | countries not thus excluded. In such case, this License incorporates | ||
284 | the limitation as if written in the body of this License. | ||
285 | |||
286 | 9. The Free Software Foundation may publish revised and/or new versions | ||
287 | of the General Public License from time to time. Such new versions will | ||
288 | be similar in spirit to the present version, but may differ in detail to | ||
289 | address new problems or concerns. | ||
290 | |||
291 | Each version is given a distinguishing version number. If the Program | ||
292 | specifies a version number of this License which applies to it and "any | ||
293 | later version", you have the option of following the terms and conditions | ||
294 | either of that version or of any later version published by the Free | ||
295 | Software Foundation. If the Program does not specify a version number of | ||
296 | this License, you may choose any version ever published by the Free Software | ||
297 | Foundation. | ||
298 | |||
299 | 10. If you wish to incorporate parts of the Program into other free | ||
300 | programs whose distribution conditions are different, write to the author | ||
301 | to ask for permission. For software which is copyrighted by the Free | ||
302 | Software Foundation, write to the Free Software Foundation; we sometimes | ||
303 | make exceptions for this. Our decision will be guided by the two goals | ||
304 | of preserving the free status of all derivatives of our free software and | ||
305 | of promoting the sharing and reuse of software generally. | ||
306 | |||
307 | NO WARRANTY | ||
308 | |||
309 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||
310 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | ||
311 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||
312 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||
313 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
314 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | ||
315 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | ||
316 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||
317 | REPAIR OR CORRECTION. | ||
318 | |||
319 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
320 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||
321 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||
322 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||
323 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||
324 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||
325 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||
326 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||
327 | POSSIBILITY OF SUCH DAMAGES. | ||
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 9822afb6313c..89757012c7ff 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -1230,6 +1230,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1230 | This module supports multiple cards. | 1230 | This module supports multiple cards. |
1231 | The driver requires the firmware loader support on kernel. | 1231 | The driver requires the firmware loader support on kernel. |
1232 | 1232 | ||
1233 | Module snd-lola | ||
1234 | --------------- | ||
1235 | |||
1236 | Module for Digigram Lola PCI-e boards | ||
1237 | |||
1238 | This module supports multiple cards. | ||
1239 | |||
1233 | Module snd-lx6464es | 1240 | Module snd-lx6464es |
1234 | ------------------- | 1241 | ------------------- |
1235 | 1242 | ||
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt index 0caf77e59be4..d70c93bdcadf 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt | |||
@@ -94,7 +94,7 @@ ALC662/663/272 | |||
94 | 3stack-dig 3-stack (2-channel) with SPDIF | 94 | 3stack-dig 3-stack (2-channel) with SPDIF |
95 | 3stack-6ch 3-stack (6-channel) | 95 | 3stack-6ch 3-stack (6-channel) |
96 | 3stack-6ch-dig 3-stack (6-channel) with SPDIF | 96 | 3stack-6ch-dig 3-stack (6-channel) with SPDIF |
97 | 6stack-dig 6-stack with SPDIF | 97 | 5stack-dig 5-stack with SPDIF |
98 | lenovo-101e Lenovo laptop | 98 | lenovo-101e Lenovo laptop |
99 | eeepc-p701 ASUS Eeepc P701 | 99 | eeepc-p701 ASUS Eeepc P701 |
100 | eeepc-ep20 ASUS Eeepc EP20 | 100 | eeepc-ep20 ASUS Eeepc EP20 |
diff --git a/Documentation/sysctl/net.txt b/Documentation/sysctl/net.txt index cbd05ffc606b..3201a7097e4d 100644 --- a/Documentation/sysctl/net.txt +++ b/Documentation/sysctl/net.txt | |||
@@ -32,6 +32,17 @@ Table : Subdirectories in /proc/sys/net | |||
32 | 1. /proc/sys/net/core - Network core options | 32 | 1. /proc/sys/net/core - Network core options |
33 | ------------------------------------------------------- | 33 | ------------------------------------------------------- |
34 | 34 | ||
35 | bpf_jit_enable | ||
36 | -------------- | ||
37 | |||
38 | This enables Berkeley Packet Filter Just in Time compiler. | ||
39 | Currently supported on x86_64 architecture, bpf_jit provides a framework | ||
40 | to speed packet filtering, the one used by tcpdump/libpcap for example. | ||
41 | Values : | ||
42 | 0 - disable the JIT (default value) | ||
43 | 1 - enable the JIT | ||
44 | 2 - enable the JIT and ask the compiler to emit traces on kernel log. | ||
45 | |||
35 | rmem_default | 46 | rmem_default |
36 | ------------ | 47 | ------------ |
37 | 48 | ||
diff --git a/Documentation/trace/kprobetrace.txt b/Documentation/trace/kprobetrace.txt index 6d27ab8d6e9f..c83bd6b4e6e8 100644 --- a/Documentation/trace/kprobetrace.txt +++ b/Documentation/trace/kprobetrace.txt | |||
@@ -120,7 +120,6 @@ format: | |||
120 | field:unsigned char common_flags; offset:2; size:1; signed:0; | 120 | field:unsigned char common_flags; offset:2; size:1; signed:0; |
121 | field:unsigned char common_preempt_count; offset:3; size:1;signed:0; | 121 | field:unsigned char common_preempt_count; offset:3; size:1;signed:0; |
122 | field:int common_pid; offset:4; size:4; signed:1; | 122 | field:int common_pid; offset:4; size:4; signed:1; |
123 | field:int common_lock_depth; offset:8; size:4; signed:1; | ||
124 | 123 | ||
125 | field:unsigned long __probe_ip; offset:12; size:4; signed:0; | 124 | field:unsigned long __probe_ip; offset:12; size:4; signed:0; |
126 | field:int __probe_nargs; offset:16; size:4; signed:1; | 125 | field:int __probe_nargs; offset:16; size:4; signed:1; |
diff --git a/Documentation/video4linux/sh_mobile_ceu_camera.txt b/Documentation/video4linux/sh_mobile_ceu_camera.txt index cb47e723af74..1e96ce6e2d2f 100644 --- a/Documentation/video4linux/sh_mobile_ceu_camera.txt +++ b/Documentation/video4linux/sh_mobile_ceu_camera.txt | |||
@@ -37,7 +37,7 @@ Generic scaling / cropping scheme | |||
37 | -1'- | 37 | -1'- |
38 | 38 | ||
39 | In the above chart minuses and slashes represent "real" data amounts, points and | 39 | In the above chart minuses and slashes represent "real" data amounts, points and |
40 | accents represent "useful" data, basically, CEU scaled amd cropped output, | 40 | accents represent "useful" data, basically, CEU scaled and cropped output, |
41 | mapped back onto the client's source plane. | 41 | mapped back onto the client's source plane. |
42 | 42 | ||
43 | Such a configuration can be produced by user requests: | 43 | Such a configuration can be produced by user requests: |
@@ -65,7 +65,7 @@ Do not touch input rectangle - it is already optimal. | |||
65 | 65 | ||
66 | 1. Calculate current sensor scales: | 66 | 1. Calculate current sensor scales: |
67 | 67 | ||
68 | scale_s = ((3') - (3)) / ((2') - (2)) | 68 | scale_s = ((2') - (2)) / ((3') - (3)) |
69 | 69 | ||
70 | 2. Calculate "effective" input crop (sensor subwindow) - CEU crop scaled back at | 70 | 2. Calculate "effective" input crop (sensor subwindow) - CEU crop scaled back at |
71 | current sensor scales onto input window - this is user S_CROP: | 71 | current sensor scales onto input window - this is user S_CROP: |
@@ -80,7 +80,7 @@ window: | |||
80 | 4. Calculate sensor output window by applying combined scales to real input | 80 | 4. Calculate sensor output window by applying combined scales to real input |
81 | window: | 81 | window: |
82 | 82 | ||
83 | width_s_out = ((2') - (2)) / scale_comb | 83 | width_s_out = ((7') - (7)) = ((2') - (2)) / scale_comb |
84 | 84 | ||
85 | 5. Apply iterative sensor S_FMT for sensor output window. | 85 | 5. Apply iterative sensor S_FMT for sensor output window. |
86 | 86 | ||
diff --git a/Documentation/virtual/00-INDEX b/Documentation/virtual/00-INDEX new file mode 100644 index 000000000000..fe0251c4cfb7 --- /dev/null +++ b/Documentation/virtual/00-INDEX | |||
@@ -0,0 +1,10 @@ | |||
1 | Virtualization support in the Linux kernel. | ||
2 | |||
3 | 00-INDEX | ||
4 | - this file. | ||
5 | kvm/ | ||
6 | - Kernel Virtual Machine. See also http://linux-kvm.org | ||
7 | lguest/ | ||
8 | - Extremely simple hypervisor for experimental/educational use. | ||
9 | uml/ | ||
10 | - User Mode Linux, builds/runs Linux kernel as a userspace program. | ||
diff --git a/Documentation/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 9bef4e4cec50..42542eb802ca 100644 --- a/Documentation/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
@@ -175,7 +175,10 @@ Parameters: vcpu id (apic id on x86) | |||
175 | Returns: vcpu fd on success, -1 on error | 175 | Returns: vcpu fd on success, -1 on error |
176 | 176 | ||
177 | This API adds a vcpu to a virtual machine. The vcpu id is a small integer | 177 | This API adds a vcpu to a virtual machine. The vcpu id is a small integer |
178 | in the range [0, max_vcpus). | 178 | in the range [0, max_vcpus). You can use KVM_CAP_NR_VCPUS of the |
179 | KVM_CHECK_EXTENSION ioctl() to determine the value for max_vcpus at run-time. | ||
180 | If the KVM_CAP_NR_VCPUS does not exist, you should assume that max_vcpus is 4 | ||
181 | cpus max. | ||
179 | 182 | ||
180 | 4.8 KVM_GET_DIRTY_LOG (vm ioctl) | 183 | 4.8 KVM_GET_DIRTY_LOG (vm ioctl) |
181 | 184 | ||
@@ -261,7 +264,7 @@ See KVM_GET_REGS for the data structure. | |||
261 | 4.13 KVM_GET_SREGS | 264 | 4.13 KVM_GET_SREGS |
262 | 265 | ||
263 | Capability: basic | 266 | Capability: basic |
264 | Architectures: x86 | 267 | Architectures: x86, ppc |
265 | Type: vcpu ioctl | 268 | Type: vcpu ioctl |
266 | Parameters: struct kvm_sregs (out) | 269 | Parameters: struct kvm_sregs (out) |
267 | Returns: 0 on success, -1 on error | 270 | Returns: 0 on success, -1 on error |
@@ -279,6 +282,8 @@ struct kvm_sregs { | |||
279 | __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; | 282 | __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; |
280 | }; | 283 | }; |
281 | 284 | ||
285 | /* ppc -- see arch/powerpc/include/asm/kvm.h */ | ||
286 | |||
282 | interrupt_bitmap is a bitmap of pending external interrupts. At most | 287 | interrupt_bitmap is a bitmap of pending external interrupts. At most |
283 | one bit may be set. This interrupt has been acknowledged by the APIC | 288 | one bit may be set. This interrupt has been acknowledged by the APIC |
284 | but not yet injected into the cpu core. | 289 | but not yet injected into the cpu core. |
@@ -286,7 +291,7 @@ but not yet injected into the cpu core. | |||
286 | 4.14 KVM_SET_SREGS | 291 | 4.14 KVM_SET_SREGS |
287 | 292 | ||
288 | Capability: basic | 293 | Capability: basic |
289 | Architectures: x86 | 294 | Architectures: x86, ppc |
290 | Type: vcpu ioctl | 295 | Type: vcpu ioctl |
291 | Parameters: struct kvm_sregs (in) | 296 | Parameters: struct kvm_sregs (in) |
292 | Returns: 0 on success, -1 on error | 297 | Returns: 0 on success, -1 on error |
@@ -1263,6 +1268,29 @@ struct kvm_assigned_msix_entry { | |||
1263 | __u16 padding[3]; | 1268 | __u16 padding[3]; |
1264 | }; | 1269 | }; |
1265 | 1270 | ||
1271 | 4.54 KVM_SET_TSC_KHZ | ||
1272 | |||
1273 | Capability: KVM_CAP_TSC_CONTROL | ||
1274 | Architectures: x86 | ||
1275 | Type: vcpu ioctl | ||
1276 | Parameters: virtual tsc_khz | ||
1277 | Returns: 0 on success, -1 on error | ||
1278 | |||
1279 | Specifies the tsc frequency for the virtual machine. The unit of the | ||
1280 | frequency is KHz. | ||
1281 | |||
1282 | 4.55 KVM_GET_TSC_KHZ | ||
1283 | |||
1284 | Capability: KVM_CAP_GET_TSC_KHZ | ||
1285 | Architectures: x86 | ||
1286 | Type: vcpu ioctl | ||
1287 | Parameters: none | ||
1288 | Returns: virtual tsc-khz on success, negative value on error | ||
1289 | |||
1290 | Returns the tsc frequency of the guest. The unit of the return value is | ||
1291 | KHz. If the host has unstable tsc this ioctl returns -EIO instead as an | ||
1292 | error. | ||
1293 | |||
1266 | 5. The kvm_run structure | 1294 | 5. The kvm_run structure |
1267 | 1295 | ||
1268 | Application code obtains a pointer to the kvm_run structure by | 1296 | Application code obtains a pointer to the kvm_run structure by |
diff --git a/Documentation/kvm/cpuid.txt b/Documentation/virtual/kvm/cpuid.txt index 882068538c9c..882068538c9c 100644 --- a/Documentation/kvm/cpuid.txt +++ b/Documentation/virtual/kvm/cpuid.txt | |||
diff --git a/Documentation/kvm/locking.txt b/Documentation/virtual/kvm/locking.txt index 3b4cd3bf5631..3b4cd3bf5631 100644 --- a/Documentation/kvm/locking.txt +++ b/Documentation/virtual/kvm/locking.txt | |||
diff --git a/Documentation/kvm/mmu.txt b/Documentation/virtual/kvm/mmu.txt index f46aa58389ca..f46aa58389ca 100644 --- a/Documentation/kvm/mmu.txt +++ b/Documentation/virtual/kvm/mmu.txt | |||
diff --git a/Documentation/kvm/msr.txt b/Documentation/virtual/kvm/msr.txt index d079aed27e03..d079aed27e03 100644 --- a/Documentation/kvm/msr.txt +++ b/Documentation/virtual/kvm/msr.txt | |||
diff --git a/Documentation/kvm/ppc-pv.txt b/Documentation/virtual/kvm/ppc-pv.txt index 3ab969c59046..3ab969c59046 100644 --- a/Documentation/kvm/ppc-pv.txt +++ b/Documentation/virtual/kvm/ppc-pv.txt | |||
diff --git a/Documentation/kvm/review-checklist.txt b/Documentation/virtual/kvm/review-checklist.txt index 730475ae1b8d..a850986ed684 100644 --- a/Documentation/kvm/review-checklist.txt +++ b/Documentation/virtual/kvm/review-checklist.txt | |||
@@ -7,7 +7,7 @@ Review checklist for kvm patches | |||
7 | 2. Patches should be against kvm.git master branch. | 7 | 2. Patches should be against kvm.git master branch. |
8 | 8 | ||
9 | 3. If the patch introduces or modifies a new userspace API: | 9 | 3. If the patch introduces or modifies a new userspace API: |
10 | - the API must be documented in Documentation/kvm/api.txt | 10 | - the API must be documented in Documentation/virtual/kvm/api.txt |
11 | - the API must be discoverable using KVM_CHECK_EXTENSION | 11 | - the API must be discoverable using KVM_CHECK_EXTENSION |
12 | 12 | ||
13 | 4. New state must include support for save/restore. | 13 | 4. New state must include support for save/restore. |
diff --git a/Documentation/kvm/timekeeping.txt b/Documentation/virtual/kvm/timekeeping.txt index df8946377cb6..df8946377cb6 100644 --- a/Documentation/kvm/timekeeping.txt +++ b/Documentation/virtual/kvm/timekeeping.txt | |||
diff --git a/Documentation/lguest/.gitignore b/Documentation/virtual/lguest/.gitignore index 115587fd5f65..115587fd5f65 100644 --- a/Documentation/lguest/.gitignore +++ b/Documentation/virtual/lguest/.gitignore | |||
diff --git a/Documentation/lguest/Makefile b/Documentation/virtual/lguest/Makefile index bebac6b4f332..bebac6b4f332 100644 --- a/Documentation/lguest/Makefile +++ b/Documentation/virtual/lguest/Makefile | |||
diff --git a/Documentation/lguest/extract b/Documentation/virtual/lguest/extract index 7730bb6e4b94..7730bb6e4b94 100644 --- a/Documentation/lguest/extract +++ b/Documentation/virtual/lguest/extract | |||
diff --git a/Documentation/lguest/lguest.c b/Documentation/virtual/lguest/lguest.c index d9da7e148538..d9da7e148538 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/virtual/lguest/lguest.c | |||
diff --git a/Documentation/lguest/lguest.txt b/Documentation/virtual/lguest/lguest.txt index dad99978a6a8..bff0c554485d 100644 --- a/Documentation/lguest/lguest.txt +++ b/Documentation/virtual/lguest/lguest.txt | |||
@@ -74,7 +74,8 @@ Running Lguest: | |||
74 | 74 | ||
75 | - Run an lguest as root: | 75 | - Run an lguest as root: |
76 | 76 | ||
77 | Documentation/lguest/lguest 64 vmlinux --tunnet=192.168.19.1 --block=rootfile root=/dev/vda | 77 | Documentation/virtual/lguest/lguest 64 vmlinux --tunnet=192.168.19.1 \ |
78 | --block=rootfile root=/dev/vda | ||
78 | 79 | ||
79 | Explanation: | 80 | Explanation: |
80 | 64: the amount of memory to use, in MB. | 81 | 64: the amount of memory to use, in MB. |
diff --git a/Documentation/uml/UserModeLinux-HOWTO.txt b/Documentation/virtual/uml/UserModeLinux-HOWTO.txt index 9b7e1904db1c..9b7e1904db1c 100644 --- a/Documentation/uml/UserModeLinux-HOWTO.txt +++ b/Documentation/virtual/uml/UserModeLinux-HOWTO.txt | |||
diff --git a/Documentation/workqueue.txt b/Documentation/workqueue.txt index 01c513fac40e..a0b577de918f 100644 --- a/Documentation/workqueue.txt +++ b/Documentation/workqueue.txt | |||
@@ -12,6 +12,7 @@ CONTENTS | |||
12 | 4. Application Programming Interface (API) | 12 | 4. Application Programming Interface (API) |
13 | 5. Example Execution Scenarios | 13 | 5. Example Execution Scenarios |
14 | 6. Guidelines | 14 | 6. Guidelines |
15 | 7. Debugging | ||
15 | 16 | ||
16 | 17 | ||
17 | 1. Introduction | 18 | 1. Introduction |
@@ -379,3 +380,42 @@ If q1 has WQ_CPU_INTENSIVE set, | |||
379 | * Unless work items are expected to consume a huge amount of CPU | 380 | * Unless work items are expected to consume a huge amount of CPU |
380 | cycles, using a bound wq is usually beneficial due to the increased | 381 | cycles, using a bound wq is usually beneficial due to the increased |
381 | level of locality in wq operations and work item execution. | 382 | level of locality in wq operations and work item execution. |
383 | |||
384 | |||
385 | 7. Debugging | ||
386 | |||
387 | Because the work functions are executed by generic worker threads | ||
388 | there are a few tricks needed to shed some light on misbehaving | ||
389 | workqueue users. | ||
390 | |||
391 | Worker threads show up in the process list as: | ||
392 | |||
393 | root 5671 0.0 0.0 0 0 ? S 12:07 0:00 [kworker/0:1] | ||
394 | root 5672 0.0 0.0 0 0 ? S 12:07 0:00 [kworker/1:2] | ||
395 | root 5673 0.0 0.0 0 0 ? S 12:12 0:00 [kworker/0:0] | ||
396 | root 5674 0.0 0.0 0 0 ? S 12:13 0:00 [kworker/1:0] | ||
397 | |||
398 | If kworkers are going crazy (using too much cpu), there are two types | ||
399 | of possible problems: | ||
400 | |||
401 | 1. Something beeing scheduled in rapid succession | ||
402 | 2. A single work item that consumes lots of cpu cycles | ||
403 | |||
404 | The first one can be tracked using tracing: | ||
405 | |||
406 | $ echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event | ||
407 | $ cat /sys/kernel/debug/tracing/trace_pipe > out.txt | ||
408 | (wait a few secs) | ||
409 | ^C | ||
410 | |||
411 | If something is busy looping on work queueing, it would be dominating | ||
412 | the output and the offender can be determined with the work item | ||
413 | function. | ||
414 | |||
415 | For the second type of problems it should be possible to just check | ||
416 | the stack trace of the offending worker thread. | ||
417 | |||
418 | $ cat /proc/THE_OFFENDING_KWORKER/stack | ||
419 | |||
420 | The work item's function should be trivially visible in the stack | ||
421 | trace. | ||
diff --git a/Documentation/x86/x86_64/boot-options.txt b/Documentation/x86/x86_64/boot-options.txt index 092e596a1301..c54b4f503e2a 100644 --- a/Documentation/x86/x86_64/boot-options.txt +++ b/Documentation/x86/x86_64/boot-options.txt | |||
@@ -206,7 +206,7 @@ IOMMU (input/output memory management unit) | |||
206 | (e.g. because you have < 3 GB memory). | 206 | (e.g. because you have < 3 GB memory). |
207 | Kernel boot message: "PCI-DMA: Disabling IOMMU" | 207 | Kernel boot message: "PCI-DMA: Disabling IOMMU" |
208 | 208 | ||
209 | 2. <arch/x86_64/kernel/pci-gart.c>: AMD GART based hardware IOMMU. | 209 | 2. <arch/x86/kernel/amd_gart_64.c>: AMD GART based hardware IOMMU. |
210 | Kernel boot message: "PCI-DMA: using GART IOMMU" | 210 | Kernel boot message: "PCI-DMA: using GART IOMMU" |
211 | 211 | ||
212 | 3. <arch/x86_64/kernel/pci-swiotlb.c> : Software IOMMU implementation. Used | 212 | 3. <arch/x86_64/kernel/pci-swiotlb.c> : Software IOMMU implementation. Used |
diff --git a/Documentation/zh_CN/email-clients.txt b/Documentation/zh_CN/email-clients.txt new file mode 100644 index 000000000000..5d65e323d060 --- /dev/null +++ b/Documentation/zh_CN/email-clients.txt | |||
@@ -0,0 +1,210 @@ | |||
1 | 锘?Chinese translated version of Documentation/email-clients.txt | ||
2 | |||
3 | If you have any comment or update to the content, please contact the | ||
4 | original document maintainer directly. However, if you have a problem | ||
5 | communicating in English you can also ask the Chinese maintainer for | ||
6 | help. Contact the Chinese maintainer if this translation is outdated | ||
7 | or if there is a problem with the translation. | ||
8 | |||
9 | Chinese maintainer: Harry Wei <harryxiyou@gmail.com> | ||
10 | --------------------------------------------------------------------- | ||
11 | Documentation/email-clients.txt ???涓????缈昏?? | ||
12 | |||
13 | 濡??????宠??璁烘????存?版???????????瀹癸??璇风?存?ヨ??绯诲?????妗g??缁存?よ?????濡????浣?浣跨?ㄨ?辨?? | ||
14 | 浜ゆ???????伴?剧??璇?锛?涔????浠ュ??涓???????缁存?よ??姹???┿??濡???????缈昏????存?颁???????舵?????缈? | ||
15 | 璇?瀛???ㄩ??棰?锛?璇疯??绯讳腑??????缁存?よ????? | ||
16 | |||
17 | 涓???????缁存?よ??锛? 璐惧??濞? Harry Wei <harryxiyou@gmail.com> | ||
18 | 涓???????缈昏?????锛? 璐惧??濞? Harry Wei <harryxiyou@gmail.com> | ||
19 | 涓?????????¤?????锛? Yinglin Luan <synmyth@gmail.com> | ||
20 | Xiaochen Wang <wangxiaochen0@gmail.com> | ||
21 | yaxinsn <yaxinsn@163.com> | ||
22 | |||
23 | 浠ヤ??涓烘?f?? | ||
24 | --------------------------------------------------------------------- | ||
25 | |||
26 | Linux???浠跺?㈡?风?????缃?淇℃?? | ||
27 | ====================================================================== | ||
28 | |||
29 | ?????????缃? | ||
30 | ---------------------------------------------------------------------- | ||
31 | Linux?????歌ˉ涓???????杩????浠惰?????浜ょ??锛????濂芥??琛ヤ??浣?涓洪??浠朵????????宓?????????????浜?缁存?よ?? | ||
32 | ??ユ?堕??浠讹??浣???????浠剁?????瀹规?煎??搴?璇ユ??"text/plain"?????惰??锛????浠朵????????涓?璧???????锛? | ||
33 | ???涓鸿??浼?浣胯ˉ涓????寮???ㄩ?ㄥ????ㄨ??璁鸿??绋?涓???????寰???伴?俱?? | ||
34 | |||
35 | ??ㄦ?ュ?????Linux?????歌ˉ涓???????浠跺?㈡?风????ㄥ?????琛ヤ????跺??璇ュ??浜?????????????濮???舵?????渚?濡?锛? | ||
36 | 浠?浠?涓???芥?瑰?????????????ゅ?惰〃绗???????绌烘?硷???????虫????ㄦ??涓?琛????寮?澶存?????缁?灏俱?? | ||
37 | |||
38 | 涓?瑕????杩?"format=flowed"妯″????????琛ヤ?????杩???蜂??寮?璧蜂?????棰????浠ュ?????瀹崇?????琛???? | ||
39 | |||
40 | 涓?瑕?璁╀????????浠跺?㈡?风??杩?琛??????ㄦ?㈣?????杩???蜂??浼???村??浣????琛ヤ????? | ||
41 | |||
42 | ???浠跺?㈡?风??涓???芥?瑰???????????瀛?绗????缂??????瑰?????瑕??????????琛ヤ???????芥??ASCII??????UTF-8缂??????瑰??锛? | ||
43 | 濡????浣?浣跨??UTF-8缂??????瑰???????????浠讹????d??浣?灏?浼???垮??涓?浜??????藉????????瀛?绗???????棰???? | ||
44 | |||
45 | ???浠跺?㈡?风??搴?璇ュ舰???骞朵??淇???? References: ?????? In-Reply-To: ???棰?锛???d?? | ||
46 | ???浠惰??棰?灏变??浼?涓??????? | ||
47 | |||
48 | 澶???剁??甯?(?????????璐寸??甯?)???甯镐????界?ㄤ??琛ヤ??锛????涓哄?惰〃绗?浼?杞????涓虹┖??笺??浣跨??xclipboard, xclip | ||
49 | ??????xcutsel涔?璁稿??浠ワ??浣???????濂芥??璇?涓?涓?????????垮??浣跨?ㄥ????剁??甯???? | ||
50 | |||
51 | 涓?瑕???ㄤ娇???PGP/GPG缃插????????浠朵腑??????琛ヤ?????杩???蜂??浣垮??寰?澶???????涓???借?诲??????????ㄤ??浣????琛ヤ????? | ||
52 | 锛?杩?涓????棰?搴?璇ユ?????浠ヤ慨澶????锛? | ||
53 | |||
54 | ??ㄧ???????搁??浠跺??琛ㄥ?????琛ヤ??涔????锛?缁????宸卞?????涓?涓?琛ヤ?????涓?涓???????涓绘??锛?淇?瀛???ユ?跺?扮?? | ||
55 | ???浠讹??灏?琛ヤ?????'patch'??戒护???涓?锛?濡??????????浜?锛????缁??????搁??浠跺??琛ㄥ???????? | ||
56 | |||
57 | |||
58 | 涓?浜????浠跺?㈡?风?????绀? | ||
59 | ---------------------------------------------------------------------- | ||
60 | 杩????缁???轰??浜?璇?缁????MUA???缃????绀猴?????浠ョ?ㄤ??缁?Linux?????稿?????琛ヤ?????杩?浜?骞朵???????虫?? | ||
61 | ?????????杞?浠跺?????缃???荤????? | ||
62 | |||
63 | 璇存??锛? | ||
64 | TUI = 浠ユ?????涓哄?虹???????ㄦ?锋?ュ?? | ||
65 | GUI = ??惧舰?????㈢?ㄦ?锋?ュ?? | ||
66 | |||
67 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
68 | Alpine (TUI) | ||
69 | |||
70 | ???缃????椤癸?? | ||
71 | ???"Sending Preferences"??ㄥ??锛? | ||
72 | |||
73 | - "Do Not Send Flowed Text"蹇?椤诲????? | ||
74 | - "Strip Whitespace Before Sending"蹇?椤诲?抽?? | ||
75 | |||
76 | 褰???????浠舵?讹????????搴?璇ユ?惧?ㄨˉ涓?浼???虹?扮????版?癸????跺?????涓?CTRL-R缁???????锛?浣挎??瀹???? | ||
77 | 琛ヤ?????浠跺????ュ?伴??浠朵腑??? | ||
78 | |||
79 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
80 | Evolution (GUI) | ||
81 | |||
82 | 涓?浜?寮????????????????浣跨?ㄥ????????琛ヤ?? | ||
83 | |||
84 | 褰??????╅??浠堕??椤癸??Preformat | ||
85 | 浠?Format->Heading->Preformatted (Ctrl-7)??????宸ュ?锋?? | ||
86 | |||
87 | ??跺??浣跨??锛? | ||
88 | Insert->Text File... (Alt-n x)?????ヨˉ涓????浠躲?? | ||
89 | |||
90 | 浣?杩????浠?"diff -Nru old.c new.c | xclip"锛???????Preformat锛???跺??浣跨?ㄤ腑??撮??杩?琛?绮?甯???? | ||
91 | |||
92 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
93 | Kmail (GUI) | ||
94 | |||
95 | 涓?浜?寮????????????????浣跨?ㄥ????????琛ヤ????? | ||
96 | |||
97 | 榛?璁よ?剧疆涓?涓?HTML??煎??????????????锛?涓?瑕??????ㄥ????? | ||
98 | |||
99 | 褰?涔????涓?灏????浠剁????跺??锛???ㄩ??椤逛?????涓?瑕??????╄????ㄦ?㈣????????涓????缂虹?瑰氨???浣???ㄩ??浠朵腑杈???ョ??浠讳???????? | ||
100 | ??戒??浼?琚??????ㄦ?㈣??锛????姝や??蹇?椤诲?ㄥ?????琛ヤ??涔?????????ㄦ?㈣????????绠?????????规??灏辨???????ㄨ????ㄦ?㈣????ヤ功??????浠讹?? | ||
101 | ??跺?????瀹?淇?瀛?涓鸿??绋裤??涓????浣???ㄨ??绋夸腑???娆℃??寮?瀹?锛?瀹?宸茬????ㄩ?ㄨ????ㄦ?㈣??浜?锛???d??浣???????浠惰?界?舵病??? | ||
102 | ?????╄????ㄦ?㈣??锛?浣????杩?涓?浼?澶卞?诲凡???????????ㄦ?㈣????? | ||
103 | |||
104 | ??ㄩ??浠剁??搴????锛??????ヨˉ涓?涔????锛???句??甯哥?ㄧ??琛ヤ??瀹????绗?锛?涓?涓?杩?瀛????(---)??? | ||
105 | |||
106 | ??跺?????"Message"????????$??锛??????╂????ユ??浠讹????ョ????????浣????琛ヤ?????浠躲??杩????涓?涓?棰?澶???????椤癸??浣????浠? | ||
107 | ???杩?瀹????缃?浣???????浠跺缓绔?宸ュ?锋????????锛?杩????浠ュ甫涓?"insert file"??炬????? | ||
108 | |||
109 | 浣????浠ュ????ㄥ?伴??杩?GPG???璁伴??浠讹??浣???????宓?琛ヤ?????濂戒??瑕?浣跨??GPG???璁板??浠????浣?涓哄??宓??????????绛惧??琛ヤ??锛? | ||
110 | 褰?浠?GPG涓???????7浣?缂??????朵??浣夸??浠?????????村??澶??????? | ||
111 | |||
112 | 濡????浣????瑕?浠ラ??浠剁??褰㈠????????琛ヤ??锛???d??灏卞?抽????瑰?婚??浠讹????跺?????涓?灞???э??绐????"Suggest automatic | ||
113 | display"锛?杩???峰??宓????浠舵?村?规??璁╄?昏???????般?? | ||
114 | |||
115 | 褰?浣?瑕?淇?瀛?灏?瑕?????????????宓???????琛ヤ??锛?浣????浠ヤ??娑???????琛ㄧ????奸????╁?????琛ヤ????????浠讹????跺????冲?婚????? | ||
116 | "save as"???浣????浠ヤ娇??ㄤ??涓?娌℃????存?圭????????琛ヤ????????浠讹??濡????瀹????浠ユ?g‘???褰㈠??缁???????褰?浣?姝g????ㄥ?? | ||
117 | ???宸辩??绐???d??涓?瀵????锛???f?舵病??????椤瑰??浠ヤ??瀛????浠?--宸茬?????涓?涓?杩???风??bug琚?姹???ュ?颁??kmail???bugzilla | ||
118 | 骞朵??甯????杩?灏?浼?琚?澶??????????浠舵??浠ュ?????瀵规??涓???ㄦ?峰??璇诲???????????琚?淇?瀛????锛????浠ュ?????浣???虫?????浠跺????跺?板?朵????版?癸?? | ||
119 | 浣?涓?寰?涓????浠?浠????????????逛负缁?????????翠?????璇汇?? | ||
120 | |||
121 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
122 | Lotus Notes (GUI) | ||
123 | |||
124 | 涓?瑕?浣跨?ㄥ????? | ||
125 | |||
126 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
127 | Mutt (TUI) | ||
128 | |||
129 | 寰?澶?Linux寮????浜哄??浣跨??mutt瀹㈡?风??锛????浠ヨ?????瀹????瀹?宸ヤ????????甯告??浜???? | ||
130 | |||
131 | Mutt涓????甯?缂?杈????锛????浠ヤ??绠′??浣跨?ㄤ??涔?缂?杈???ㄩ?戒??搴?璇ュ甫????????ㄦ??琛????澶у????扮??杈???ㄩ?藉甫??? | ||
132 | 涓?涓?"insert file"???椤癸??瀹????浠ラ??杩?涓???瑰?????浠跺??瀹圭????瑰???????ユ??浠躲?? | ||
133 | |||
134 | 'vim'浣?涓?mutt???缂?杈????锛? | ||
135 | set editor="vi" | ||
136 | |||
137 | 濡????浣跨??xclip锛???插?ヤ互涓???戒护 | ||
138 | :set paste | ||
139 | ???涓????涔??????????shift-insert??????浣跨?? | ||
140 | :r filename | ||
141 | |||
142 | 濡??????宠?????琛ヤ??浣?涓哄??宓?????????? | ||
143 | (a)ttach宸ヤ?????寰?濂斤??涓?甯????"set paste"??? | ||
144 | |||
145 | ???缃????椤癸?? | ||
146 | 瀹?搴?璇ヤ互榛?璁よ?剧疆???褰㈠??宸ヤ????? | ||
147 | ??惰??锛????"send_charset"璁剧疆涓?"us-ascii::utf-8"涔????涓?涓?涓???????涓绘????? | ||
148 | |||
149 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
150 | Pine (TUI) | ||
151 | |||
152 | Pine杩???绘??涓?浜?绌烘?煎????????棰?锛?浣????杩?浜???板?ㄥ??璇ラ?借??淇?澶?浜???? | ||
153 | |||
154 | 濡???????浠ワ??璇蜂娇???alpine(pine???缁ф?胯??) | ||
155 | |||
156 | ???缃????椤癸?? | ||
157 | - ???杩?????????????瑕?娑???ゆ??绋??????? | ||
158 | - "no-strip-whitespace-before-send"???椤逛????????瑕??????? | ||
159 | |||
160 | |||
161 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
162 | Sylpheed (GUI) | ||
163 | |||
164 | - ???宓??????????浠ュ??濂界??宸ヤ??锛???????浣跨?ㄩ??浠讹????? | ||
165 | - ???璁镐娇??ㄥ????ㄧ??缂?杈???ㄣ?? | ||
166 | - 瀵逛?????褰?杈?澶???堕??甯告????? | ||
167 | - 濡???????杩?non-SSL杩???ワ?????娉?浣跨??TLS SMTP????????? | ||
168 | - ??ㄧ?????绐???d腑???涓?涓?寰??????ㄧ??ruler bar??? | ||
169 | - 缁???板?????涓?娣诲????板??灏变??浼?姝g‘???浜?瑙f?剧ず?????? | ||
170 | |||
171 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
172 | Thunderbird (GUI) | ||
173 | |||
174 | 榛?璁ゆ????典??锛?thunderbird寰?瀹规??????????????锛?浣????杩????涓?浜???规?????浠ュ己??跺?????寰???村ソ??? | ||
175 | |||
176 | - ??ㄧ?ㄦ?峰????疯?剧疆???锛?缁???????瀵诲??锛?涓?瑕???????"Compose messages in HTML format"??? | ||
177 | |||
178 | - 缂?杈?浣????Thunderbird???缃?璁剧疆??ヤ娇瀹?涓?瑕????琛?浣跨??锛?user_pref("mailnews.wraplength", 0); | ||
179 | |||
180 | - 缂?杈?浣????Thunderbird???缃?璁剧疆锛?浣垮??涓?瑕?浣跨??"format=flowed"??煎??锛?user_pref("mailnews. | ||
181 | send_plaintext_flowed", false); | ||
182 | |||
183 | - 浣????瑕?浣?Thunderbird???涓洪???????煎????瑰??锛? | ||
184 | 濡????榛?璁ゆ????典??浣?涔??????????HTML??煎??锛???d?????寰???俱??浠?浠?浠????棰???????涓????妗?涓???????"Preformat"??煎????? | ||
185 | 濡????榛?璁ゆ????典??浣?涔??????????????????煎??锛?浣?涓?寰????瀹???逛负HTML??煎??锛?浠?浠?浣?涓轰??娆℃?х??锛???ヤ功?????扮??娑????锛? | ||
186 | ??跺??寮哄?朵娇瀹??????版???????煎??锛???????瀹?灏变?????琛????瑕?瀹???板??锛???ㄥ??淇$????炬??涓?浣跨??shift?????ヤ娇瀹????涓?HTML | ||
187 | ??煎??锛???跺?????棰???????涓????妗?涓???????"Preformat"??煎????? | ||
188 | |||
189 | - ???璁镐娇??ㄥ????ㄧ??缂?杈????锛? | ||
190 | ???瀵?Thunderbird???琛ヤ?????绠?????????规??灏辨??浣跨?ㄤ??涓?"external editor"??╁??锛???跺??浣跨?ㄤ????????娆㈢?? | ||
191 | $EDITOR??ヨ?诲???????????骞惰ˉ涓???版?????涓????瑕?瀹???板??锛????浠ヤ??杞藉苟涓?瀹?瑁?杩?涓???╁??锛???跺??娣诲??涓?涓?浣跨?ㄥ????? | ||
192 | ??????View->Toolbars->Customize...??????褰?浣?涔????淇℃???????跺??浠?浠???瑰?诲??灏卞??浠ヤ????? | ||
193 | |||
194 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
195 | TkRat (GUI) | ||
196 | |||
197 | ???浠ヤ娇??ㄥ?????浣跨??"Insert file..."??????澶???ㄧ??缂?杈???ㄣ?? | ||
198 | |||
199 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
200 | Gmail (Web GUI) | ||
201 | |||
202 | 涓?瑕?浣跨?ㄥ????????琛ヤ????? | ||
203 | |||
204 | Gmail缃?椤靛?㈡?风???????ㄥ?版????惰〃绗?杞????涓虹┖??笺?? | ||
205 | |||
206 | ??界?跺?惰〃绗?杞????涓虹┖??奸??棰????浠ヨ??澶???ㄧ??杈???ㄨВ??筹???????跺??杩?浼?浣跨?ㄥ??杞???㈣?????姣?琛???????涓?78涓?瀛?绗???? | ||
207 | |||
208 | ???涓?涓????棰????Gmail杩?浼????浠讳??涓????ASCII???瀛?绗????淇℃????逛负base64缂???????瀹????涓?瑗垮????????娆ф床浜虹?????瀛???? | ||
209 | |||
210 | ### | ||