diff options
Diffstat (limited to 'Documentation')
41 files changed, 715 insertions, 113 deletions
diff --git a/Documentation/ABI/testing/sysfs-devices-memory b/Documentation/ABI/testing/sysfs-devices-memory index 7a16fe1e2270..9fe91c02ee40 100644 --- a/Documentation/ABI/testing/sysfs-devices-memory +++ b/Documentation/ABI/testing/sysfs-devices-memory | |||
@@ -6,7 +6,6 @@ Description: | |||
6 | internal state of the kernel memory blocks. Files could be | 6 | internal state of the kernel memory blocks. Files could be |
7 | added or removed dynamically to represent hot-add/remove | 7 | added or removed dynamically to represent hot-add/remove |
8 | operations. | 8 | operations. |
9 | |||
10 | Users: hotplug memory add/remove tools | 9 | Users: hotplug memory add/remove tools |
11 | https://w3.opensource.ibm.com/projects/powerpc-utils/ | 10 | https://w3.opensource.ibm.com/projects/powerpc-utils/ |
12 | 11 | ||
@@ -19,6 +18,56 @@ Description: | |||
19 | This is useful for a user-level agent to determine | 18 | This is useful for a user-level agent to determine |
20 | identify removable sections of the memory before attempting | 19 | identify removable sections of the memory before attempting |
21 | potentially expensive hot-remove memory operation | 20 | potentially expensive hot-remove memory operation |
21 | Users: hotplug memory remove tools | ||
22 | https://w3.opensource.ibm.com/projects/powerpc-utils/ | ||
23 | |||
24 | What: /sys/devices/system/memory/memoryX/phys_device | ||
25 | Date: September 2008 | ||
26 | Contact: Badari Pulavarty <pbadari@us.ibm.com> | ||
27 | Description: | ||
28 | The file /sys/devices/system/memory/memoryX/phys_device | ||
29 | is read-only and is designed to show the name of physical | ||
30 | memory device. Implementation is currently incomplete. | ||
22 | 31 | ||
32 | What: /sys/devices/system/memory/memoryX/phys_index | ||
33 | Date: September 2008 | ||
34 | Contact: Badari Pulavarty <pbadari@us.ibm.com> | ||
35 | Description: | ||
36 | The file /sys/devices/system/memory/memoryX/phys_index | ||
37 | is read-only and contains the section ID in hexadecimal | ||
38 | which is equivalent to decimal X contained in the | ||
39 | memory section directory name. | ||
40 | |||
41 | What: /sys/devices/system/memory/memoryX/state | ||
42 | Date: September 2008 | ||
43 | Contact: Badari Pulavarty <pbadari@us.ibm.com> | ||
44 | Description: | ||
45 | The file /sys/devices/system/memory/memoryX/state | ||
46 | is read-write. When read, it's contents show the | ||
47 | online/offline state of the memory section. When written, | ||
48 | root can toggle the the online/offline state of a removable | ||
49 | memory section (see removable file description above) | ||
50 | using the following commands. | ||
51 | # echo online > /sys/devices/system/memory/memoryX/state | ||
52 | # echo offline > /sys/devices/system/memory/memoryX/state | ||
53 | |||
54 | For example, if /sys/devices/system/memory/memory22/removable | ||
55 | contains a value of 1 and | ||
56 | /sys/devices/system/memory/memory22/state contains the | ||
57 | string "online" the following command can be executed by | ||
58 | by root to offline that section. | ||
59 | # echo offline > /sys/devices/system/memory/memory22/state | ||
23 | Users: hotplug memory remove tools | 60 | Users: hotplug memory remove tools |
24 | https://w3.opensource.ibm.com/projects/powerpc-utils/ | 61 | https://w3.opensource.ibm.com/projects/powerpc-utils/ |
62 | |||
63 | What: /sys/devices/system/node/nodeX/memoryY | ||
64 | Date: September 2008 | ||
65 | Contact: Gary Hade <garyhade@us.ibm.com> | ||
66 | Description: | ||
67 | When CONFIG_NUMA is enabled | ||
68 | /sys/devices/system/node/nodeX/memoryY is a symbolic link that | ||
69 | points to the corresponding /sys/devices/system/memory/memoryY | ||
70 | memory section directory. For example, the following symbolic | ||
71 | link is created for memory section 9 on node0. | ||
72 | /sys/devices/system/node/node0/memory9 -> ../../memory/memory9 | ||
73 | |||
diff --git a/Documentation/DMA-mapping.txt b/Documentation/DMA-mapping.txt index c74fec8c2351..b2a4d6d244d9 100644 --- a/Documentation/DMA-mapping.txt +++ b/Documentation/DMA-mapping.txt | |||
@@ -26,7 +26,7 @@ mapped only for the time they are actually used and unmapped after the DMA | |||
26 | transfer. | 26 | transfer. |
27 | 27 | ||
28 | The following API will work of course even on platforms where no such | 28 | The following API will work of course even on platforms where no such |
29 | hardware exists, see e.g. include/asm-i386/pci.h for how it is implemented on | 29 | hardware exists, see e.g. arch/x86/include/asm/pci.h for how it is implemented on |
30 | top of the virt_to_bus interface. | 30 | top of the virt_to_bus interface. |
31 | 31 | ||
32 | First of all, you should make sure | 32 | First of all, you should make sure |
diff --git a/Documentation/DocBook/uio-howto.tmpl b/Documentation/DocBook/uio-howto.tmpl index df87d1b93605..b787e4721c90 100644 --- a/Documentation/DocBook/uio-howto.tmpl +++ b/Documentation/DocBook/uio-howto.tmpl | |||
@@ -42,6 +42,12 @@ GPL version 2. | |||
42 | 42 | ||
43 | <revhistory> | 43 | <revhistory> |
44 | <revision> | 44 | <revision> |
45 | <revnumber>0.6</revnumber> | ||
46 | <date>2008-12-05</date> | ||
47 | <authorinitials>hjk</authorinitials> | ||
48 | <revremark>Added description of portio sysfs attributes.</revremark> | ||
49 | </revision> | ||
50 | <revision> | ||
45 | <revnumber>0.5</revnumber> | 51 | <revnumber>0.5</revnumber> |
46 | <date>2008-05-22</date> | 52 | <date>2008-05-22</date> |
47 | <authorinitials>hjk</authorinitials> | 53 | <authorinitials>hjk</authorinitials> |
@@ -318,6 +324,54 @@ interested in translating it, please email me | |||
318 | offset = N * getpagesize(); | 324 | offset = N * getpagesize(); |
319 | </programlisting> | 325 | </programlisting> |
320 | 326 | ||
327 | <para> | ||
328 | Sometimes there is hardware with memory-like regions that can not be | ||
329 | mapped with the technique described here, but there are still ways to | ||
330 | access them from userspace. The most common example are x86 ioports. | ||
331 | On x86 systems, userspace can access these ioports using | ||
332 | <function>ioperm()</function>, <function>iopl()</function>, | ||
333 | <function>inb()</function>, <function>outb()</function>, and similar | ||
334 | functions. | ||
335 | </para> | ||
336 | <para> | ||
337 | Since these ioport regions can not be mapped, they will not appear under | ||
338 | <filename>/sys/class/uio/uioX/maps/</filename> like the normal memory | ||
339 | described above. Without information about the port regions a hardware | ||
340 | has to offer, it becomes difficult for the userspace part of the | ||
341 | driver to find out which ports belong to which UIO device. | ||
342 | </para> | ||
343 | <para> | ||
344 | To address this situation, the new directory | ||
345 | <filename>/sys/class/uio/uioX/portio/</filename> was added. It only | ||
346 | exists if the driver wants to pass information about one or more port | ||
347 | regions to userspace. If that is the case, subdirectories named | ||
348 | <filename>port0</filename>, <filename>port1</filename>, and so on, | ||
349 | will appear underneath | ||
350 | <filename>/sys/class/uio/uioX/portio/</filename>. | ||
351 | </para> | ||
352 | <para> | ||
353 | Each <filename>portX/</filename> directory contains three read-only | ||
354 | files that show start, size, and type of the port region: | ||
355 | </para> | ||
356 | <itemizedlist> | ||
357 | <listitem> | ||
358 | <para> | ||
359 | <filename>start</filename>: The first port of this region. | ||
360 | </para> | ||
361 | </listitem> | ||
362 | <listitem> | ||
363 | <para> | ||
364 | <filename>size</filename>: The number of ports in this region. | ||
365 | </para> | ||
366 | </listitem> | ||
367 | <listitem> | ||
368 | <para> | ||
369 | <filename>porttype</filename>: A string describing the type of port. | ||
370 | </para> | ||
371 | </listitem> | ||
372 | </itemizedlist> | ||
373 | |||
374 | |||
321 | </sect1> | 375 | </sect1> |
322 | </chapter> | 376 | </chapter> |
323 | 377 | ||
@@ -339,12 +393,12 @@ offset = N * getpagesize(); | |||
339 | 393 | ||
340 | <itemizedlist> | 394 | <itemizedlist> |
341 | <listitem><para> | 395 | <listitem><para> |
342 | <varname>char *name</varname>: Required. The name of your driver as | 396 | <varname>const char *name</varname>: Required. The name of your driver as |
343 | it will appear in sysfs. I recommend using the name of your module for this. | 397 | it will appear in sysfs. I recommend using the name of your module for this. |
344 | </para></listitem> | 398 | </para></listitem> |
345 | 399 | ||
346 | <listitem><para> | 400 | <listitem><para> |
347 | <varname>char *version</varname>: Required. This string appears in | 401 | <varname>const char *version</varname>: Required. This string appears in |
348 | <filename>/sys/class/uio/uioX/version</filename>. | 402 | <filename>/sys/class/uio/uioX/version</filename>. |
349 | </para></listitem> | 403 | </para></listitem> |
350 | 404 | ||
@@ -356,6 +410,13 @@ See the description below for details. | |||
356 | </para></listitem> | 410 | </para></listitem> |
357 | 411 | ||
358 | <listitem><para> | 412 | <listitem><para> |
413 | <varname>struct uio_port port[ MAX_UIO_PORTS_REGIONS ]</varname>: Required | ||
414 | if you want to pass information about ioports to userspace. For each port | ||
415 | region you need to fill one of the <varname>uio_port</varname> structures. | ||
416 | See the description below for details. | ||
417 | </para></listitem> | ||
418 | |||
419 | <listitem><para> | ||
359 | <varname>long irq</varname>: Required. If your hardware generates an | 420 | <varname>long irq</varname>: Required. If your hardware generates an |
360 | interrupt, it's your modules task to determine the irq number during | 421 | interrupt, it's your modules task to determine the irq number during |
361 | initialization. If you don't have a hardware generated interrupt but | 422 | initialization. If you don't have a hardware generated interrupt but |
@@ -448,6 +509,42 @@ Please do not touch the <varname>kobj</varname> element of | |||
448 | <varname>struct uio_mem</varname>! It is used by the UIO framework | 509 | <varname>struct uio_mem</varname>! It is used by the UIO framework |
449 | to set up sysfs files for this mapping. Simply leave it alone. | 510 | to set up sysfs files for this mapping. Simply leave it alone. |
450 | </para> | 511 | </para> |
512 | |||
513 | <para> | ||
514 | Sometimes, your device can have one or more port regions which can not be | ||
515 | mapped to userspace. But if there are other possibilities for userspace to | ||
516 | access these ports, it makes sense to make information about the ports | ||
517 | available in sysfs. For each region, you have to set up a | ||
518 | <varname>struct uio_port</varname> in the <varname>port[]</varname> array. | ||
519 | Here's a description of the fields of <varname>struct uio_port</varname>: | ||
520 | </para> | ||
521 | |||
522 | <itemizedlist> | ||
523 | <listitem><para> | ||
524 | <varname>char *porttype</varname>: Required. Set this to one of the predefined | ||
525 | constants. Use <varname>UIO_PORT_X86</varname> for the ioports found in x86 | ||
526 | architectures. | ||
527 | </para></listitem> | ||
528 | |||
529 | <listitem><para> | ||
530 | <varname>unsigned long start</varname>: Required if the port region is used. | ||
531 | Fill in the number of the first port of this region. | ||
532 | </para></listitem> | ||
533 | |||
534 | <listitem><para> | ||
535 | <varname>unsigned long size</varname>: Fill in the number of ports in this | ||
536 | region. If <varname>size</varname> is zero, the region is considered unused. | ||
537 | Note that you <emphasis>must</emphasis> initialize <varname>size</varname> | ||
538 | with zero for all unused regions. | ||
539 | </para></listitem> | ||
540 | </itemizedlist> | ||
541 | |||
542 | <para> | ||
543 | Please do not touch the <varname>portio</varname> element of | ||
544 | <varname>struct uio_port</varname>! It is used internally by the UIO | ||
545 | framework to set up sysfs files for this region. Simply leave it alone. | ||
546 | </para> | ||
547 | |||
451 | </sect1> | 548 | </sect1> |
452 | 549 | ||
453 | <sect1 id="adding_irq_handler"> | 550 | <sect1 id="adding_irq_handler"> |
diff --git a/Documentation/blackfin/00-INDEX b/Documentation/blackfin/00-INDEX index 7cb3b356b249..d6840a91e1e1 100644 --- a/Documentation/blackfin/00-INDEX +++ b/Documentation/blackfin/00-INDEX | |||
@@ -9,3 +9,6 @@ cachefeatures.txt | |||
9 | 9 | ||
10 | Filesystems | 10 | Filesystems |
11 | - Requirements for mounting the root file system. | 11 | - Requirements for mounting the root file system. |
12 | |||
13 | bfin-gpio-note.txt | ||
14 | - Notes in developing/using bfin-gpio driver. | ||
diff --git a/Documentation/blackfin/bfin-gpio-notes.txt b/Documentation/blackfin/bfin-gpio-notes.txt new file mode 100644 index 000000000000..9898c7ded7d3 --- /dev/null +++ b/Documentation/blackfin/bfin-gpio-notes.txt | |||
@@ -0,0 +1,71 @@ | |||
1 | /* | ||
2 | * File: Documentation/blackfin/bfin-gpio-note.txt | ||
3 | * Based on: | ||
4 | * Author: | ||
5 | * | ||
6 | * Created: $Id: bfin-gpio-note.txt 2008-11-24 16:42 grafyang $ | ||
7 | * Description: This file contains the notes in developing/using bfin-gpio. | ||
8 | * | ||
9 | * | ||
10 | * Rev: | ||
11 | * | ||
12 | * Modified: | ||
13 | * Copyright 2004-2008 Analog Devices Inc. | ||
14 | * | ||
15 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
16 | * | ||
17 | */ | ||
18 | |||
19 | |||
20 | 1. Blackfin GPIO introduction | ||
21 | |||
22 | There are many GPIO pins on Blackfin. Most of these pins are muxed to | ||
23 | multi-functions. They can be configured as peripheral, or just as GPIO, | ||
24 | configured to input with interrupt enabled, or output. | ||
25 | |||
26 | For detailed information, please see "arch/blackfin/kernel/bfin_gpio.c", | ||
27 | or the relevant HRM. | ||
28 | |||
29 | |||
30 | 2. Avoiding resource conflict | ||
31 | |||
32 | Followed function groups are used to avoiding resource conflict, | ||
33 | - Use the pin as peripheral, | ||
34 | int peripheral_request(unsigned short per, const char *label); | ||
35 | int peripheral_request_list(const unsigned short per[], const char *label); | ||
36 | void peripheral_free(unsigned short per); | ||
37 | void peripheral_free_list(const unsigned short per[]); | ||
38 | - Use the pin as GPIO, | ||
39 | int bfin_gpio_request(unsigned gpio, const char *label); | ||
40 | void bfin_gpio_free(unsigned gpio); | ||
41 | - Use the pin as GPIO interrupt, | ||
42 | int bfin_gpio_irq_request(unsigned gpio, const char *label); | ||
43 | void bfin_gpio_irq_free(unsigned gpio); | ||
44 | |||
45 | The request functions will record the function state for a certain pin, | ||
46 | the free functions will clear it's function state. | ||
47 | Once a pin is requested, it can't be requested again before it is freed by | ||
48 | previous caller, otherwise kernel will dump stacks, and the request | ||
49 | function fail. | ||
50 | These functions are wrapped by other functions, most of the users need not | ||
51 | care. | ||
52 | |||
53 | |||
54 | 3. But there are some exceptions | ||
55 | - Kernel permit the identical GPIO be requested both as GPIO and GPIO | ||
56 | interrut. | ||
57 | Some drivers, like gpio-keys, need this behavior. Kernel only print out | ||
58 | warning messages like, | ||
59 | bfin-gpio: GPIO 24 is already reserved by gpio-keys: BTN0, and you are | ||
60 | configuring it as IRQ! | ||
61 | |||
62 | Note: Consider the case that, if there are two drivers need the | ||
63 | identical GPIO, one of them use it as GPIO, the other use it as | ||
64 | GPIO interrupt. This will really cause resource conflict. So if | ||
65 | there is any abnormal driver behavior, please check the bfin-gpio | ||
66 | warning messages. | ||
67 | |||
68 | - Kernel permit the identical GPIO be requested from the same driver twice. | ||
69 | |||
70 | |||
71 | |||
diff --git a/Documentation/dell_rbu.txt b/Documentation/dell_rbu.txt index 2c0d631de0cf..c11b931f8f98 100644 --- a/Documentation/dell_rbu.txt +++ b/Documentation/dell_rbu.txt | |||
@@ -81,8 +81,8 @@ Until this step is completed the driver cannot be unloaded. | |||
81 | Also echoing either mono ,packet or init in to image_type will free up the | 81 | Also echoing either mono ,packet or init in to image_type will free up the |
82 | memory allocated by the driver. | 82 | memory allocated by the driver. |
83 | 83 | ||
84 | If an user by accident executes steps 1 and 3 above without executing step 2; | 84 | If a user by accident executes steps 1 and 3 above without executing step 2; |
85 | it will make the /sys/class/firmware/dell_rbu/ entries to disappear. | 85 | it will make the /sys/class/firmware/dell_rbu/ entries disappear. |
86 | The entries can be recreated by doing the following | 86 | The entries can be recreated by doing the following |
87 | echo init > /sys/devices/platform/dell_rbu/image_type | 87 | echo init > /sys/devices/platform/dell_rbu/image_type |
88 | NOTE: echoing init in image_type does not change it original value. | 88 | NOTE: echoing init in image_type does not change it original value. |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index df18d87c4837..5ddbe350487a 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -315,3 +315,23 @@ When: 2.6.29 (ideally) or 2.6.30 (more likely) | |||
315 | Why: Deprecated by the new (standard) device driver binding model. Use | 315 | Why: Deprecated by the new (standard) device driver binding model. Use |
316 | i2c_driver->probe() and ->remove() instead. | 316 | i2c_driver->probe() and ->remove() instead. |
317 | Who: Jean Delvare <khali@linux-fr.org> | 317 | Who: Jean Delvare <khali@linux-fr.org> |
318 | |||
319 | --------------------------- | ||
320 | |||
321 | What: fscher and fscpos drivers | ||
322 | When: June 2009 | ||
323 | Why: Deprecated by the new fschmd driver. | ||
324 | Who: Hans de Goede <hdegoede@redhat.com> | ||
325 | Jean Delvare <khali@linux-fr.org> | ||
326 | |||
327 | --------------------------- | ||
328 | |||
329 | What: SELinux "compat_net" functionality | ||
330 | When: 2.6.30 at the earliest | ||
331 | Why: In 2.6.18 the Secmark concept was introduced to replace the "compat_net" | ||
332 | network access control functionality of SELinux. Secmark offers both | ||
333 | better performance and greater flexibility than the "compat_net" | ||
334 | mechanism. Now that the major Linux distributions have moved to | ||
335 | Secmark, it is time to deprecate the older mechanism and start the | ||
336 | process of removing the old code. | ||
337 | Who: Paul Moore <paul.moore@hp.com> | ||
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index ccec55394380..cfbfa15a46ba 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -397,7 +397,7 @@ prototypes: | |||
397 | }; | 397 | }; |
398 | 398 | ||
399 | locking rules: | 399 | locking rules: |
400 | All except ->poll() may block. | 400 | All may block. |
401 | BKL | 401 | BKL |
402 | llseek: no (see below) | 402 | llseek: no (see below) |
403 | read: no | 403 | read: no |
diff --git a/Documentation/filesystems/ocfs2.txt b/Documentation/filesystems/ocfs2.txt index 67310fbbb7df..c2a0871280a0 100644 --- a/Documentation/filesystems/ocfs2.txt +++ b/Documentation/filesystems/ocfs2.txt | |||
@@ -31,7 +31,6 @@ Features which OCFS2 does not support yet: | |||
31 | - quotas | 31 | - quotas |
32 | - Directory change notification (F_NOTIFY) | 32 | - Directory change notification (F_NOTIFY) |
33 | - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) | 33 | - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) |
34 | - POSIX ACLs | ||
35 | 34 | ||
36 | Mount options | 35 | Mount options |
37 | ============= | 36 | ============= |
@@ -79,3 +78,5 @@ inode64 Indicates that Ocfs2 is allowed to create inodes at | |||
79 | bits of significance. | 78 | bits of significance. |
80 | user_xattr (*) Enables Extended User Attributes. | 79 | user_xattr (*) Enables Extended User Attributes. |
81 | nouser_xattr Disables Extended User Attributes. | 80 | nouser_xattr Disables Extended User Attributes. |
81 | acl Enables POSIX Access Control Lists support. | ||
82 | noacl (*) Disables POSIX Access Control Lists support. | ||
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 334ef2f983fa..d105eb45282a 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -1386,6 +1386,15 @@ swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer | |||
1386 | to retain dentry and inode caches. Increasing vfs_cache_pressure beyond 100 | 1386 | to retain dentry and inode caches. Increasing vfs_cache_pressure beyond 100 |
1387 | causes the kernel to prefer to reclaim dentries and inodes. | 1387 | causes the kernel to prefer to reclaim dentries and inodes. |
1388 | 1388 | ||
1389 | dirty_background_bytes | ||
1390 | ---------------------- | ||
1391 | |||
1392 | Contains the amount of dirty memory at which the pdflush background writeback | ||
1393 | daemon will start writeback. | ||
1394 | |||
1395 | If dirty_background_bytes is written, dirty_background_ratio becomes a function | ||
1396 | of its value (dirty_background_bytes / the amount of dirtyable system memory). | ||
1397 | |||
1389 | dirty_background_ratio | 1398 | dirty_background_ratio |
1390 | ---------------------- | 1399 | ---------------------- |
1391 | 1400 | ||
@@ -1394,14 +1403,29 @@ pages + file cache, not including locked pages and HugePages), the number of | |||
1394 | pages at which the pdflush background writeback daemon will start writing out | 1403 | pages at which the pdflush background writeback daemon will start writing out |
1395 | dirty data. | 1404 | dirty data. |
1396 | 1405 | ||
1406 | If dirty_background_ratio is written, dirty_background_bytes becomes a function | ||
1407 | of its value (dirty_background_ratio * the amount of dirtyable system memory). | ||
1408 | |||
1409 | dirty_bytes | ||
1410 | ----------- | ||
1411 | |||
1412 | Contains the amount of dirty memory at which a process generating disk writes | ||
1413 | will itself start writeback. | ||
1414 | |||
1415 | If dirty_bytes is written, dirty_ratio becomes a function of its value | ||
1416 | (dirty_bytes / the amount of dirtyable system memory). | ||
1417 | |||
1397 | dirty_ratio | 1418 | dirty_ratio |
1398 | ----------------- | 1419 | ----------- |
1399 | 1420 | ||
1400 | Contains, as a percentage of the dirtyable system memory (free pages + mapped | 1421 | Contains, as a percentage of the dirtyable system memory (free pages + mapped |
1401 | pages + file cache, not including locked pages and HugePages), the number of | 1422 | pages + file cache, not including locked pages and HugePages), the number of |
1402 | pages at which a process which is generating disk writes will itself start | 1423 | pages at which a process which is generating disk writes will itself start |
1403 | writing out dirty data. | 1424 | writing out dirty data. |
1404 | 1425 | ||
1426 | If dirty_ratio is written, dirty_bytes becomes a function of its value | ||
1427 | (dirty_ratio * the amount of dirtyable system memory). | ||
1428 | |||
1405 | dirty_writeback_centisecs | 1429 | dirty_writeback_centisecs |
1406 | ------------------------- | 1430 | ------------------------- |
1407 | 1431 | ||
diff --git a/Documentation/hwmon/abituguru-datasheet b/Documentation/hwmon/abituguru-datasheet index aef5a9b36846..4d184f2db0ea 100644 --- a/Documentation/hwmon/abituguru-datasheet +++ b/Documentation/hwmon/abituguru-datasheet | |||
@@ -74,7 +74,7 @@ a sensor. | |||
74 | Notice that some banks have both a read and a write address this is how the | 74 | Notice that some banks have both a read and a write address this is how the |
75 | uGuru determines if a read from or a write to the bank is taking place, thus | 75 | uGuru determines if a read from or a write to the bank is taking place, thus |
76 | when reading you should always use the read address and when writing the | 76 | when reading you should always use the read address and when writing the |
77 | write address. The write address is always one (1) more then the read address. | 77 | write address. The write address is always one (1) more than the read address. |
78 | 78 | ||
79 | 79 | ||
80 | uGuru ready | 80 | uGuru ready |
@@ -224,7 +224,7 @@ Bit 3: Beep if alarm (RW) | |||
224 | Bit 4: 1 if alarm cause measured temp is over the warning threshold (R) | 224 | Bit 4: 1 if alarm cause measured temp is over the warning threshold (R) |
225 | Bit 5: 1 if alarm cause measured volt is over the max threshold (R) | 225 | Bit 5: 1 if alarm cause measured volt is over the max threshold (R) |
226 | Bit 6: 1 if alarm cause measured volt is under the min threshold (R) | 226 | Bit 6: 1 if alarm cause measured volt is under the min threshold (R) |
227 | Bit 7: Volt sensor: Shutdown if alarm persist for more then 4 seconds (RW) | 227 | Bit 7: Volt sensor: Shutdown if alarm persist for more than 4 seconds (RW) |
228 | Temp sensor: Shutdown if temp is over the shutdown threshold (RW) | 228 | Temp sensor: Shutdown if temp is over the shutdown threshold (RW) |
229 | 229 | ||
230 | * This bit is only honored/used by the uGuru if a temp sensor is connected | 230 | * This bit is only honored/used by the uGuru if a temp sensor is connected |
@@ -293,7 +293,7 @@ Byte 0: | |||
293 | Alarm behaviour for the selected sensor. A 1 enables the described behaviour. | 293 | Alarm behaviour for the selected sensor. A 1 enables the described behaviour. |
294 | Bit 0: Give an alarm if measured rpm is under the min threshold (RW) | 294 | Bit 0: Give an alarm if measured rpm is under the min threshold (RW) |
295 | Bit 3: Beep if alarm (RW) | 295 | Bit 3: Beep if alarm (RW) |
296 | Bit 7: Shutdown if alarm persist for more then 4 seconds (RW) | 296 | Bit 7: Shutdown if alarm persist for more than 4 seconds (RW) |
297 | 297 | ||
298 | Byte 1: | 298 | Byte 1: |
299 | min threshold (scale as bank 0x26) | 299 | min threshold (scale as bank 0x26) |
diff --git a/Documentation/hwmon/adt7470 b/Documentation/hwmon/adt7470 index 75d13ca147cc..8ce4aa0a0f55 100644 --- a/Documentation/hwmon/adt7470 +++ b/Documentation/hwmon/adt7470 | |||
@@ -31,15 +31,11 @@ Each of the measured inputs (temperature, fan speed) has corresponding high/low | |||
31 | limit values. The ADT7470 will signal an ALARM if any measured value exceeds | 31 | limit values. The ADT7470 will signal an ALARM if any measured value exceeds |
32 | either limit. | 32 | either limit. |
33 | 33 | ||
34 | The ADT7470 DOES NOT sample all inputs continuously. A single pin on the | 34 | The ADT7470 samples all inputs continuously. A kernel thread is started up for |
35 | ADT7470 is connected to a multitude of thermal diodes, but the chip must be | 35 | the purpose of periodically querying the temperature sensors, thus allowing the |
36 | instructed explicitly to read the multitude of diodes. If you want to use | 36 | automatic fan pwm control to set the fan speed. The driver will not read the |
37 | automatic fan control mode, you must manually read any of the temperature | 37 | registers more often than once every 5 seconds. Further, configuration data is |
38 | sensors or the fan control algorithm will not run. The chip WILL NOT DO THIS | 38 | only read once per minute. |
39 | AUTOMATICALLY; this must be done from userspace. This may be a bug in the chip | ||
40 | design, given that many other AD chips take care of this. The driver will not | ||
41 | read the registers more often than once every 5 seconds. Further, | ||
42 | configuration data is only read once per minute. | ||
43 | 39 | ||
44 | Special Features | 40 | Special Features |
45 | ---------------- | 41 | ---------------- |
@@ -72,5 +68,6 @@ pwm#_auto_point2_temp. | |||
72 | Notes | 68 | Notes |
73 | ----- | 69 | ----- |
74 | 70 | ||
75 | As stated above, the temperature inputs must be read periodically from | 71 | The temperature inputs no longer need to be read periodically from userspace in |
76 | userspace in order for the automatic pwm algorithm to run. | 72 | order for the automatic pwm algorithm to run. This was the case for earlier |
73 | versions of the driver. | ||
diff --git a/Documentation/hwmon/f71882fg b/Documentation/hwmon/f71882fg new file mode 100644 index 000000000000..a8321267b5b6 --- /dev/null +++ b/Documentation/hwmon/f71882fg | |||
@@ -0,0 +1,89 @@ | |||
1 | Kernel driver f71882fg | ||
2 | ====================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Fintek F71882FG and F71883FG | ||
6 | Prefix: 'f71882fg' | ||
7 | Addresses scanned: none, address read from Super I/O config space | ||
8 | Datasheet: Available from the Fintek website | ||
9 | * Fintek F71862FG and F71863FG | ||
10 | Prefix: 'f71862fg' | ||
11 | Addresses scanned: none, address read from Super I/O config space | ||
12 | Datasheet: Available from the Fintek website | ||
13 | * Fintek F8000 | ||
14 | Prefix: 'f8000' | ||
15 | Addresses scanned: none, address read from Super I/O config space | ||
16 | Datasheet: Not public | ||
17 | |||
18 | Author: Hans de Goede <hdegoede@redhat.com> | ||
19 | |||
20 | |||
21 | Description | ||
22 | ----------- | ||
23 | |||
24 | Fintek F718xxFG/F8000 Super I/O chips include complete hardware monitoring | ||
25 | capabilities. They can monitor up to 9 voltages (3 for the F8000), 4 fans and | ||
26 | 3 temperature sensors. | ||
27 | |||
28 | These chips also have fan controlling features, using either DC or PWM, in | ||
29 | three different modes (one manual, two automatic). | ||
30 | |||
31 | The driver assumes that no more than one chip is present, which seems | ||
32 | reasonable. | ||
33 | |||
34 | |||
35 | Monitoring | ||
36 | ---------- | ||
37 | |||
38 | The Voltage, Fan and Temperature Monitoring uses the standard sysfs | ||
39 | interface as documented in sysfs-interface, without any exceptions. | ||
40 | |||
41 | |||
42 | Fan Control | ||
43 | ----------- | ||
44 | |||
45 | Both PWM (pulse-width modulation) and DC fan speed control methods are | ||
46 | supported. The right one to use depends on external circuitry on the | ||
47 | motherboard, so the driver assumes that the BIOS set the method | ||
48 | properly. | ||
49 | |||
50 | There are 2 modes to specify the speed of the fan, PWM duty cycle (or DC | ||
51 | voltage) mode, where 0-100% duty cycle (0-100% of 12V) is specified. And RPM | ||
52 | mode where the actual RPM of the fan (as measured) is controlled and the speed | ||
53 | gets specified as 0-100% of the fan#_full_speed file. | ||
54 | |||
55 | Since both modes work in a 0-100% (mapped to 0-255) scale, there isn't a | ||
56 | whole lot of a difference when modifying fan control settings. The only | ||
57 | important difference is that in RPM mode the 0-100% controls the fan speed | ||
58 | between 0-100% of fan#_full_speed. It is assumed that if the BIOS programs | ||
59 | RPM mode, it will also set fan#_full_speed properly, if it does not then | ||
60 | fan control will not work properly, unless you set a sane fan#_full_speed | ||
61 | value yourself. | ||
62 | |||
63 | Switching between these modes requires re-initializing a whole bunch of | ||
64 | registers, so the mode which the BIOS has set is kept. The mode is | ||
65 | printed when loading the driver. | ||
66 | |||
67 | Three different fan control modes are supported; the mode number is written | ||
68 | to the pwm#_enable file. Note that not all modes are supported on all | ||
69 | chips, and some modes may only be available in RPM / PWM mode on the F8000. | ||
70 | Writing an unsupported mode will result in an invalid parameter error. | ||
71 | |||
72 | * 1: Manual mode | ||
73 | You ask for a specific PWM duty cycle / DC voltage or a specific % of | ||
74 | fan#_full_speed by writing to the pwm# file. This mode is only | ||
75 | available on the F8000 if the fan channel is in RPM mode. | ||
76 | |||
77 | * 2: Normal auto mode | ||
78 | You can define a number of temperature/fan speed trip points, which % the | ||
79 | fan should run at at this temp and which temp a fan should follow using the | ||
80 | standard sysfs interface. The number and type of trip points is chip | ||
81 | depended, see which files are available in sysfs. | ||
82 | Fan/PWM channel 3 of the F8000 is always in this mode! | ||
83 | |||
84 | * 3: Thermostat mode (Only available on the F8000 when in duty cycle mode) | ||
85 | The fan speed is regulated to keep the temp the fan is mapped to between | ||
86 | temp#_auto_point2_temp and temp#_auto_point3_temp. | ||
87 | |||
88 | Both of the automatic modes require that pwm1 corresponds to fan1, pwm2 to | ||
89 | fan2 and pwm3 to fan3. | ||
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87 index 042c0415140b..659315d98e00 100644 --- a/Documentation/hwmon/it87 +++ b/Documentation/hwmon/it87 | |||
@@ -26,6 +26,10 @@ Supported chips: | |||
26 | Datasheet: Publicly available at the ITE website | 26 | Datasheet: Publicly available at the ITE website |
27 | http://www.ite.com.tw/product_info/file/pc/IT8718F_V0.2.zip | 27 | http://www.ite.com.tw/product_info/file/pc/IT8718F_V0.2.zip |
28 | http://www.ite.com.tw/product_info/file/pc/IT8718F_V0%203_(for%20C%20version).zip | 28 | http://www.ite.com.tw/product_info/file/pc/IT8718F_V0%203_(for%20C%20version).zip |
29 | * IT8720F | ||
30 | Prefix: 'it8720' | ||
31 | Addresses scanned: from Super I/O config space (8 I/O ports) | ||
32 | Datasheet: Not yet publicly available. | ||
29 | * SiS950 [clone of IT8705F] | 33 | * SiS950 [clone of IT8705F] |
30 | Prefix: 'it87' | 34 | Prefix: 'it87' |
31 | Addresses scanned: from Super I/O config space (8 I/O ports) | 35 | Addresses scanned: from Super I/O config space (8 I/O ports) |
@@ -71,7 +75,7 @@ Description | |||
71 | ----------- | 75 | ----------- |
72 | 76 | ||
73 | This driver implements support for the IT8705F, IT8712F, IT8716F, | 77 | This driver implements support for the IT8705F, IT8712F, IT8716F, |
74 | IT8718F, IT8726F and SiS950 chips. | 78 | IT8718F, IT8720F, IT8726F and SiS950 chips. |
75 | 79 | ||
76 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, | 80 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, |
77 | joysticks and other miscellaneous stuff. For hardware monitoring, they | 81 | joysticks and other miscellaneous stuff. For hardware monitoring, they |
@@ -84,19 +88,19 @@ the IT8716F and late IT8712F have 6. They are shared with other functions | |||
84 | though, so the functionality may not be available on a given system. | 88 | though, so the functionality may not be available on a given system. |
85 | The driver dumbly assume it is there. | 89 | The driver dumbly assume it is there. |
86 | 90 | ||
87 | The IT8718F also features VID inputs (up to 8 pins) but the value is | 91 | The IT8718F and IT8720F also features VID inputs (up to 8 pins) but the value |
88 | stored in the Super-I/O configuration space. Due to technical limitations, | 92 | is stored in the Super-I/O configuration space. Due to technical limitations, |
89 | this value can currently only be read once at initialization time, so | 93 | this value can currently only be read once at initialization time, so |
90 | the driver won't notice and report changes in the VID value. The two | 94 | the driver won't notice and report changes in the VID value. The two |
91 | upper VID bits share their pins with voltage inputs (in5 and in6) so you | 95 | upper VID bits share their pins with voltage inputs (in5 and in6) so you |
92 | can't have both on a given board. | 96 | can't have both on a given board. |
93 | 97 | ||
94 | The IT8716F, IT8718F and later IT8712F revisions have support for | 98 | The IT8716F, IT8718F, IT8720F and later IT8712F revisions have support for |
95 | 2 additional fans. The additional fans are supported by the driver. | 99 | 2 additional fans. The additional fans are supported by the driver. |
96 | 100 | ||
97 | The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional | 101 | The IT8716F, IT8718F and IT8720F, and late IT8712F and IT8705F also have |
98 | 16-bit tachometer counters for fans 1 to 3. This is better (no more fan | 102 | optional 16-bit tachometer counters for fans 1 to 3. This is better (no more |
99 | clock divider mess) but not compatible with the older chips and | 103 | fan clock divider mess) but not compatible with the older chips and |
100 | revisions. The 16-bit tachometer mode is enabled by the driver when one | 104 | revisions. The 16-bit tachometer mode is enabled by the driver when one |
101 | of the above chips is detected. | 105 | of the above chips is detected. |
102 | 106 | ||
@@ -122,7 +126,7 @@ zero'; this is important for negative voltage measurements. All voltage | |||
122 | inputs can measure voltages between 0 and 4.08 volts, with a resolution of | 126 | inputs can measure voltages between 0 and 4.08 volts, with a resolution of |
123 | 0.016 volt. The battery voltage in8 does not have limit registers. | 127 | 0.016 volt. The battery voltage in8 does not have limit registers. |
124 | 128 | ||
125 | The VID lines (IT8712F/IT8716F/IT8718F) encode the core voltage value: | 129 | The VID lines (IT8712F/IT8716F/IT8718F/IT8720F) encode the core voltage value: |
126 | the voltage level your processor should work with. This is hardcoded by | 130 | the voltage level your processor should work with. This is hardcoded by |
127 | the mainboard and/or processor itself. It is a value in volts. | 131 | the mainboard and/or processor itself. It is a value in volts. |
128 | 132 | ||
diff --git a/Documentation/hwmon/lm70 b/Documentation/hwmon/lm70 index 2bdd3feebf53..0d240291e3cc 100644 --- a/Documentation/hwmon/lm70 +++ b/Documentation/hwmon/lm70 | |||
@@ -1,9 +1,11 @@ | |||
1 | Kernel driver lm70 | 1 | Kernel driver lm70 |
2 | ================== | 2 | ================== |
3 | 3 | ||
4 | Supported chip: | 4 | Supported chips: |
5 | * National Semiconductor LM70 | 5 | * National Semiconductor LM70 |
6 | Datasheet: http://www.national.com/pf/LM/LM70.html | 6 | Datasheet: http://www.national.com/pf/LM/LM70.html |
7 | * Texas Instruments TMP121/TMP123 | ||
8 | Information: http://focus.ti.com/docs/prod/folders/print/tmp121.html | ||
7 | 9 | ||
8 | Author: | 10 | Author: |
9 | Kaiwan N Billimoria <kaiwan@designergraphix.com> | 11 | Kaiwan N Billimoria <kaiwan@designergraphix.com> |
@@ -25,6 +27,14 @@ complement digital temperature (sent via the SIO line), is available in the | |||
25 | driver for interpretation. This driver makes use of the kernel's in-core | 27 | driver for interpretation. This driver makes use of the kernel's in-core |
26 | SPI support. | 28 | SPI support. |
27 | 29 | ||
30 | As a real (in-tree) example of this "SPI protocol driver" interfacing | ||
31 | with a "SPI master controller driver", see drivers/spi/spi_lm70llp.c | ||
32 | and its associated documentation. | ||
33 | |||
34 | The TMP121/TMP123 are very similar; main differences are 4 wire SPI inter- | ||
35 | face (read only) and 13-bit temperature data (0.0625 degrees celsius reso- | ||
36 | lution). | ||
37 | |||
28 | Thanks to | 38 | Thanks to |
29 | --------- | 39 | --------- |
30 | Jean Delvare <khali@linux-fr.org> for mentoring the hwmon-side driver | 40 | Jean Delvare <khali@linux-fr.org> for mentoring the hwmon-side driver |
diff --git a/Documentation/hwmon/lm85 b/Documentation/hwmon/lm85 index 400620741290..a13680871bc7 100644 --- a/Documentation/hwmon/lm85 +++ b/Documentation/hwmon/lm85 | |||
@@ -164,7 +164,7 @@ configured individually according to the following options. | |||
164 | temperature. (PWM value from 0 to 255) | 164 | temperature. (PWM value from 0 to 255) |
165 | 165 | ||
166 | * pwm#_auto_pwm_minctl - this flags selects for temp#_auto_temp_off temperature | 166 | * pwm#_auto_pwm_minctl - this flags selects for temp#_auto_temp_off temperature |
167 | the bahaviour of fans. Write 1 to let fans spinning at | 167 | the behaviour of fans. Write 1 to let fans spinning at |
168 | pwm#_auto_pwm_min or write 0 to let them off. | 168 | pwm#_auto_pwm_min or write 0 to let them off. |
169 | 169 | ||
170 | NOTE: It has been reported that there is a bug in the LM85 that causes the flag | 170 | NOTE: It has been reported that there is a bug in the LM85 that causes the flag |
diff --git a/Documentation/hwmon/ltc4245 b/Documentation/hwmon/ltc4245 new file mode 100644 index 000000000000..bae7a3adc5d8 --- /dev/null +++ b/Documentation/hwmon/ltc4245 | |||
@@ -0,0 +1,81 @@ | |||
1 | Kernel driver ltc4245 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Linear Technology LTC4245 | ||
6 | Prefix: 'ltc4245' | ||
7 | Addresses scanned: 0x20-0x3f | ||
8 | Datasheet: | ||
9 | http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1003,C1006,C1140,P19392,D13517 | ||
10 | |||
11 | Author: Ira W. Snyder <iws@ovro.caltech.edu> | ||
12 | |||
13 | |||
14 | Description | ||
15 | ----------- | ||
16 | |||
17 | The LTC4245 controller allows a board to be safely inserted and removed | ||
18 | from a live backplane in multiple supply systems such as CompactPCI and | ||
19 | PCI Express. | ||
20 | |||
21 | |||
22 | Usage Notes | ||
23 | ----------- | ||
24 | |||
25 | This driver does not probe for LTC4245 devices, due to the fact that some | ||
26 | of the possible addresses are unfriendly to probing. You will need to use | ||
27 | the "force" parameter to tell the driver where to find the device. | ||
28 | |||
29 | Example: the following will load the driver for an LTC4245 at address 0x23 | ||
30 | on I2C bus #1: | ||
31 | $ modprobe ltc4245 force=1,0x23 | ||
32 | |||
33 | |||
34 | Sysfs entries | ||
35 | ------------- | ||
36 | |||
37 | The LTC4245 has built-in limits for over and under current warnings. This | ||
38 | makes it very likely that the reference circuit will be used. | ||
39 | |||
40 | This driver uses the values in the datasheet to change the register values | ||
41 | into the values specified in the sysfs-interface document. The current readings | ||
42 | rely on the sense resistors listed in Table 2: "Sense Resistor Values". | ||
43 | |||
44 | in1_input 12v input voltage (mV) | ||
45 | in2_input 5v input voltage (mV) | ||
46 | in3_input 3v input voltage (mV) | ||
47 | in4_input Vee (-12v) input voltage (mV) | ||
48 | |||
49 | in1_min_alarm 12v input undervoltage alarm | ||
50 | in2_min_alarm 5v input undervoltage alarm | ||
51 | in3_min_alarm 3v input undervoltage alarm | ||
52 | in4_min_alarm Vee (-12v) input undervoltage alarm | ||
53 | |||
54 | curr1_input 12v current (mA) | ||
55 | curr2_input 5v current (mA) | ||
56 | curr3_input 3v current (mA) | ||
57 | curr4_input Vee (-12v) current (mA) | ||
58 | |||
59 | curr1_max_alarm 12v overcurrent alarm | ||
60 | curr2_max_alarm 5v overcurrent alarm | ||
61 | curr3_max_alarm 3v overcurrent alarm | ||
62 | curr4_max_alarm Vee (-12v) overcurrent alarm | ||
63 | |||
64 | in5_input 12v output voltage (mV) | ||
65 | in6_input 5v output voltage (mV) | ||
66 | in7_input 3v output voltage (mV) | ||
67 | in8_input Vee (-12v) output voltage (mV) | ||
68 | |||
69 | in5_min_alarm 12v output undervoltage alarm | ||
70 | in6_min_alarm 5v output undervoltage alarm | ||
71 | in7_min_alarm 3v output undervoltage alarm | ||
72 | in8_min_alarm Vee (-12v) output undervoltage alarm | ||
73 | |||
74 | in9_input GPIO #1 voltage data | ||
75 | in10_input GPIO #2 voltage data | ||
76 | in11_input GPIO #3 voltage data | ||
77 | |||
78 | power1_input 12v power usage (mW) | ||
79 | power2_input 5v power usage (mW) | ||
80 | power3_input 3v power usage (mW) | ||
81 | power4_input Vee (-12v) power usage (mW) | ||
diff --git a/Documentation/ide/warm-plug-howto.txt b/Documentation/ide/warm-plug-howto.txt index d5885468b072..98152bcd515a 100644 --- a/Documentation/ide/warm-plug-howto.txt +++ b/Documentation/ide/warm-plug-howto.txt | |||
@@ -11,3 +11,8 @@ unplug old device(s) and plug new device(s) | |||
11 | # echo -n "1" > /sys/class/ide_port/idex/scan | 11 | # echo -n "1" > /sys/class/ide_port/idex/scan |
12 | 12 | ||
13 | done | 13 | done |
14 | |||
15 | NOTE: please make sure that partitions are unmounted and that there are | ||
16 | no other active references to devices before doing "delete_devices" step, | ||
17 | also do not attempt "scan" step on devices currently in use -- otherwise | ||
18 | results may be unpredictable and lead to data loss if you're unlucky | ||
diff --git a/Documentation/input/walkera0701.txt b/Documentation/input/walkera0701.txt new file mode 100644 index 000000000000..8f4289efc5c4 --- /dev/null +++ b/Documentation/input/walkera0701.txt | |||
@@ -0,0 +1,109 @@ | |||
1 | |||
2 | Walkera WK-0701 transmitter is supplied with a ready to fly Walkera | ||
3 | helicopters such as HM36, HM37, HM60. The walkera0701 module enables to use | ||
4 | this transmitter as joystick | ||
5 | |||
6 | Devel homepage and download: | ||
7 | http://zub.fei.tuke.sk/walkera-wk0701/ | ||
8 | |||
9 | or use cogito: | ||
10 | cg-clone http://zub.fei.tuke.sk/GIT/walkera0701-joystick | ||
11 | |||
12 | |||
13 | Connecting to PC: | ||
14 | |||
15 | At back side of transmitter S-video connector can be found. Modulation | ||
16 | pulses from processor to HF part can be found at pin 2 of this connector, | ||
17 | pin 3 is GND. Between pin 3 and CPU 5k6 resistor can be found. To get | ||
18 | modulation pulses to PC, signal pulses must be amplified. | ||
19 | |||
20 | Cable: (walkera TX to parport) | ||
21 | |||
22 | Walkera WK-0701 TX S-VIDEO connector: | ||
23 | (back side of TX) | ||
24 | __ __ S-video: canon25 | ||
25 | / |_| \ pin 2 (signal) NPN parport | ||
26 | / O 4 3 O \ pin 3 (GND) LED ________________ 10 ACK | ||
27 | ( O 2 1 O ) | C | ||
28 | \ ___ / 2 ________________________|\|_____|/ | ||
29 | | [___] | |/| B |\ | ||
30 | ------- 3 __________________________________|________________ 25 GND | ||
31 | E | ||
32 | |||
33 | |||
34 | I use green LED and BC109 NPN transistor. | ||
35 | |||
36 | Software: | ||
37 | |||
38 | Build kernel with walkera0701 module. Module walkera0701 need exclusive | ||
39 | access to parport, modules like lp must be unloaded before loading | ||
40 | walkera0701 module, check dmesg for error messages. Connect TX to PC by | ||
41 | cable and run jstest /dev/input/js0 to see values from TX. If no value can | ||
42 | be changed by TX "joystick", check output from /proc/interrupts. Value for | ||
43 | (usually irq7) parport must increase if TX is on. | ||
44 | |||
45 | |||
46 | |||
47 | Technical details: | ||
48 | |||
49 | Driver use interrupt from parport ACK input bit to measure pulse length | ||
50 | using hrtimers. | ||
51 | |||
52 | Frame format: | ||
53 | Based on walkera WK-0701 PCM Format description by Shaul Eizikovich. | ||
54 | (downloaded from http://www.smartpropoplus.com/Docs/Walkera_Wk-0701_PCM.pdf) | ||
55 | |||
56 | Signal pulses: | ||
57 | (ANALOG) | ||
58 | SYNC BIN OCT | ||
59 | +---------+ +------+ | ||
60 | | | | | | ||
61 | --+ +------+ +--- | ||
62 | |||
63 | Frame: | ||
64 | SYNC , BIN1, OCT1, BIN2, OCT2 ... BIN24, OCT24, BIN25, next frame SYNC .. | ||
65 | |||
66 | pulse length: | ||
67 | Binary values: Analog octal values: | ||
68 | |||
69 | 288 uS Binary 0 318 uS 000 | ||
70 | 438 uS Binary 1 398 uS 001 | ||
71 | 478 uS 010 | ||
72 | 558 uS 011 | ||
73 | 638 uS 100 | ||
74 | 1306 uS SYNC 718 uS 101 | ||
75 | 798 uS 110 | ||
76 | 878 uS 111 | ||
77 | |||
78 | 24 bin+oct values + 1 bin value = 24*4+1 bits = 97 bits | ||
79 | |||
80 | (Warning, pulses on ACK ar inverted by transistor, irq is rised up on sync | ||
81 | to bin change or octal value to bin change). | ||
82 | |||
83 | Binary data representations: | ||
84 | |||
85 | One binary and octal value can be grouped to nibble. 24 nibbles + one binary | ||
86 | values can be sampled between sync pulses. | ||
87 | |||
88 | Values for first four channels (analog joystick values) can be found in | ||
89 | first 10 nibbles. Analog value is represented by one sign bit and 9 bit | ||
90 | absolute binary value. (10 bits per channel). Next nibble is checksum for | ||
91 | first ten nibbles. | ||
92 | |||
93 | Next nibbles 12 .. 21 represents four channels (not all channels can be | ||
94 | directly controlled from TX). Binary representations ar the same as in first | ||
95 | four channels. In nibbles 22 and 23 is a special magic number. Nibble 24 is | ||
96 | checksum for nibbles 12..23. | ||
97 | |||
98 | After last octal value for nibble 24 and next sync pulse one additional | ||
99 | binary value can be sampled. This bit and magic number is not used in | ||
100 | software driver. Some details about this magic numbers can be found in | ||
101 | Walkera_Wk-0701_PCM.pdf. | ||
102 | |||
103 | Checksum calculation: | ||
104 | |||
105 | Summary of octal values in nibbles must be same as octal value in checksum | ||
106 | nibble (only first 3 bits are used). Binary value for checksum nibble is | ||
107 | calculated by sum of binary values in checked nibbles + sum of octal values | ||
108 | in checked nibbles divided by 8. Only bit 0 of this sum is used. | ||
109 | |||
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt index 824699174436..f1d639903325 100644 --- a/Documentation/ioctl/ioctl-number.txt +++ b/Documentation/ioctl/ioctl-number.txt | |||
@@ -84,7 +84,7 @@ Code Seq# Include File Comments | |||
84 | 'B' C0-FF advanced bbus | 84 | 'B' C0-FF advanced bbus |
85 | <mailto:maassen@uni-freiburg.de> | 85 | <mailto:maassen@uni-freiburg.de> |
86 | 'C' all linux/soundcard.h | 86 | 'C' all linux/soundcard.h |
87 | 'D' all asm-s390/dasd.h | 87 | 'D' all arch/s390/include/asm/dasd.h |
88 | 'E' all linux/input.h | 88 | 'E' all linux/input.h |
89 | 'F' all linux/fb.h | 89 | 'F' all linux/fb.h |
90 | 'H' all linux/hiddev.h | 90 | 'H' all linux/hiddev.h |
@@ -105,7 +105,7 @@ Code Seq# Include File Comments | |||
105 | 'S' 80-81 scsi/scsi_ioctl.h conflict! | 105 | 'S' 80-81 scsi/scsi_ioctl.h conflict! |
106 | 'S' 82-FF scsi/scsi.h conflict! | 106 | 'S' 82-FF scsi/scsi.h conflict! |
107 | 'T' all linux/soundcard.h conflict! | 107 | 'T' all linux/soundcard.h conflict! |
108 | 'T' all asm-i386/ioctls.h conflict! | 108 | 'T' all arch/x86/include/asm/ioctls.h conflict! |
109 | 'U' 00-EF linux/drivers/usb/usb.h | 109 | 'U' 00-EF linux/drivers/usb/usb.h |
110 | 'V' all linux/vt.h | 110 | 'V' all linux/vt.h |
111 | 'W' 00-1F linux/watchdog.h conflict! | 111 | 'W' 00-1F linux/watchdog.h conflict! |
@@ -120,7 +120,7 @@ Code Seq# Include File Comments | |||
120 | <mailto:natalia@nikhefk.nikhef.nl> | 120 | <mailto:natalia@nikhefk.nikhef.nl> |
121 | 'c' 00-7F linux/comstats.h conflict! | 121 | 'c' 00-7F linux/comstats.h conflict! |
122 | 'c' 00-7F linux/coda.h conflict! | 122 | 'c' 00-7F linux/coda.h conflict! |
123 | 'c' 80-9F asm-s390/chsc.h | 123 | 'c' 80-9F arch/s390/include/asm/chsc.h |
124 | 'd' 00-FF linux/char/drm/drm/h conflict! | 124 | 'd' 00-FF linux/char/drm/drm/h conflict! |
125 | 'd' 00-DF linux/video_decoder.h conflict! | 125 | 'd' 00-DF linux/video_decoder.h conflict! |
126 | 'd' F0-FF linux/digi1.h | 126 | 'd' F0-FF linux/digi1.h |
@@ -170,7 +170,7 @@ Code Seq# Include File Comments | |||
170 | <mailto:oe@port.de> | 170 | <mailto:oe@port.de> |
171 | 0x80 00-1F linux/fb.h | 171 | 0x80 00-1F linux/fb.h |
172 | 0x81 00-1F linux/videotext.h | 172 | 0x81 00-1F linux/videotext.h |
173 | 0x89 00-06 asm-i386/sockios.h | 173 | 0x89 00-06 arch/x86/include/asm/sockios.h |
174 | 0x89 0B-DF linux/sockios.h | 174 | 0x89 0B-DF linux/sockios.h |
175 | 0x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range | 175 | 0x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range |
176 | 0x89 F0-FF linux/sockios.h SIOCDEVPRIVATE range | 176 | 0x89 F0-FF linux/sockios.h SIOCDEVPRIVATE range |
diff --git a/Documentation/kernel-doc-nano-HOWTO.txt b/Documentation/kernel-doc-nano-HOWTO.txt index c6841eee9598..d73fbd2b2b45 100644 --- a/Documentation/kernel-doc-nano-HOWTO.txt +++ b/Documentation/kernel-doc-nano-HOWTO.txt | |||
@@ -71,6 +71,11 @@ The @argument descriptions must begin on the very next line following | |||
71 | this opening short function description line, with no intervening | 71 | this opening short function description line, with no intervening |
72 | empty comment lines. | 72 | empty comment lines. |
73 | 73 | ||
74 | If a function parameter is "..." (varargs), it should be listed in | ||
75 | kernel-doc notation as: | ||
76 | * @...: description | ||
77 | |||
78 | |||
74 | Example kernel-doc data structure comment. | 79 | Example kernel-doc data structure comment. |
75 | 80 | ||
76 | /** | 81 | /** |
@@ -282,6 +287,32 @@ struct my_struct { | |||
282 | }; | 287 | }; |
283 | 288 | ||
284 | 289 | ||
290 | Including documentation blocks in source files | ||
291 | ---------------------------------------------- | ||
292 | |||
293 | To facilitate having source code and comments close together, you can | ||
294 | include kernel-doc documentation blocks that are free-form comments | ||
295 | instead of being kernel-doc for functions, structures, unions, | ||
296 | enums, or typedefs. This could be used for something like a | ||
297 | theory of operation for a driver or library code, for example. | ||
298 | |||
299 | This is done by using a DOC: section keyword with a section title. E.g.: | ||
300 | |||
301 | /** | ||
302 | * DOC: Theory of Operation | ||
303 | * | ||
304 | * The whizbang foobar is a dilly of a gizmo. It can do whatever you | ||
305 | * want it to do, at any time. It reads your mind. Here's how it works. | ||
306 | * | ||
307 | * foo bar splat | ||
308 | * | ||
309 | * The only drawback to this gizmo is that is can sometimes damage | ||
310 | * hardware, software, or its subject(s). | ||
311 | */ | ||
312 | |||
313 | DOC: sections are used in SGML templates files as indicated below. | ||
314 | |||
315 | |||
285 | How to make new SGML template files | 316 | How to make new SGML template files |
286 | ----------------------------------- | 317 | ----------------------------------- |
287 | 318 | ||
@@ -302,6 +333,9 @@ exported using EXPORT_SYMBOL. | |||
302 | !F<filename> <function [functions...]> is replaced by the | 333 | !F<filename> <function [functions...]> is replaced by the |
303 | documentation, in <filename>, for the functions listed. | 334 | documentation, in <filename>, for the functions listed. |
304 | 335 | ||
336 | !P<filename> <section title> is replaced by the contents of the DOC: | ||
337 | section titled <section title> from <filename>. | ||
338 | Spaces are allowed in <section title>; do not quote the <section title>. | ||
305 | 339 | ||
306 | Tim. | 340 | Tim. |
307 | */ <twaugh@redhat.com> | 341 | */ <twaugh@redhat.com> |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index a2d8805c03d5..0b3f6711d2f1 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -469,8 +469,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
469 | 469 | ||
470 | clearcpuid=BITNUM [X86] | 470 | clearcpuid=BITNUM [X86] |
471 | Disable CPUID feature X for the kernel. See | 471 | Disable CPUID feature X for the kernel. See |
472 | include/asm-x86/cpufeature.h for the valid bit numbers. | 472 | arch/x86/include/asm/cpufeature.h for the valid bit |
473 | Note the Linux specific bits are not necessarily | 473 | numbers. Note the Linux specific bits are not necessarily |
474 | stable over kernel options, but the vendor specific | 474 | stable over kernel options, but the vendor specific |
475 | ones should be. | 475 | ones should be. |
476 | Also note that user programs calling CPUID directly | 476 | Also note that user programs calling CPUID directly |
@@ -551,6 +551,11 @@ and is between 256 and 4096 characters. It is defined in the file | |||
551 | not work reliably with all consoles, but is known | 551 | not work reliably with all consoles, but is known |
552 | to work with serial and VGA consoles. | 552 | to work with serial and VGA consoles. |
553 | 553 | ||
554 | coredump_filter= | ||
555 | [KNL] Change the default value for | ||
556 | /proc/<pid>/coredump_filter. | ||
557 | See also Documentation/filesystems/proc.txt. | ||
558 | |||
554 | cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver | 559 | cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver |
555 | Format: | 560 | Format: |
556 | <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>] | 561 | <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>] |
@@ -1117,6 +1122,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1117 | If there are multiple matching configurations changing | 1122 | If there are multiple matching configurations changing |
1118 | the same attribute, the last one is used. | 1123 | the same attribute, the last one is used. |
1119 | 1124 | ||
1125 | lmb=debug [KNL] Enable lmb debug messages. | ||
1126 | |||
1120 | load_ramdisk= [RAM] List of ramdisks to load from floppy | 1127 | load_ramdisk= [RAM] List of ramdisks to load from floppy |
1121 | See Documentation/blockdev/ramdisk.txt. | 1128 | See Documentation/blockdev/ramdisk.txt. |
1122 | 1129 | ||
@@ -1569,6 +1576,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1569 | 1576 | ||
1570 | nr_uarts= [SERIAL] maximum number of UARTs to be registered. | 1577 | nr_uarts= [SERIAL] maximum number of UARTs to be registered. |
1571 | 1578 | ||
1579 | ohci1394_dma=early [HW] enable debugging via the ohci1394 driver. | ||
1580 | See Documentation/debugging-via-ohci1394.txt for more | ||
1581 | info. | ||
1582 | |||
1572 | olpc_ec_timeout= [OLPC] ms delay when issuing EC commands | 1583 | olpc_ec_timeout= [OLPC] ms delay when issuing EC commands |
1573 | Rather than timing out after 20 ms if an EC | 1584 | Rather than timing out after 20 ms if an EC |
1574 | command is not properly ACKed, override the length | 1585 | command is not properly ACKed, override the length |
@@ -1793,10 +1804,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1793 | autoconfiguration. | 1804 | autoconfiguration. |
1794 | Ranges are in pairs (memory base and size). | 1805 | Ranges are in pairs (memory base and size). |
1795 | 1806 | ||
1796 | dynamic_printk | 1807 | dynamic_printk Enables pr_debug()/dev_dbg() calls if |
1797 | Enables pr_debug()/dev_dbg() calls if | 1808 | CONFIG_DYNAMIC_PRINTK_DEBUG has been enabled. |
1798 | CONFIG_DYNAMIC_PRINTK_DEBUG has been enabled. These can also | 1809 | These can also be switched on/off via |
1799 | be switched on/off via <debugfs>/dynamic_printk/modules | 1810 | <debugfs>/dynamic_printk/modules |
1800 | 1811 | ||
1801 | print-fatal-signals= | 1812 | print-fatal-signals= |
1802 | [KNL] debug: print fatal signals | 1813 | [KNL] debug: print fatal signals |
@@ -1884,7 +1895,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1884 | 1895 | ||
1885 | reboot= [BUGS=X86-32,BUGS=ARM,BUGS=IA-64] Rebooting mode | 1896 | reboot= [BUGS=X86-32,BUGS=ARM,BUGS=IA-64] Rebooting mode |
1886 | Format: <reboot_mode>[,<reboot_mode2>[,...]] | 1897 | Format: <reboot_mode>[,<reboot_mode2>[,...]] |
1887 | See arch/*/kernel/reboot.c or arch/*/kernel/process.c | 1898 | See arch/*/kernel/reboot.c or arch/*/kernel/process.c |
1888 | 1899 | ||
1889 | relax_domain_level= | 1900 | relax_domain_level= |
1890 | [KNL, SMP] Set scheduler's default relax_domain_level. | 1901 | [KNL, SMP] Set scheduler's default relax_domain_level. |
@@ -2432,8 +2443,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
2432 | Format: | 2443 | Format: |
2433 | <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]] | 2444 | <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]] |
2434 | 2445 | ||
2435 | norandmaps Don't use address space randomization | 2446 | norandmaps Don't use address space randomization. Equivalent to |
2436 | Equivalent to echo 0 > /proc/sys/kernel/randomize_va_space | 2447 | echo 0 > /proc/sys/kernel/randomize_va_space |
2437 | 2448 | ||
2438 | ______________________________________________________________________ | 2449 | ______________________________________________________________________ |
2439 | 2450 | ||
diff --git a/Documentation/kobject.txt b/Documentation/kobject.txt index f5d2aad65a67..b2e374586bd8 100644 --- a/Documentation/kobject.txt +++ b/Documentation/kobject.txt | |||
@@ -118,8 +118,8 @@ the name of the kobject, call kobject_rename(): | |||
118 | 118 | ||
119 | int kobject_rename(struct kobject *kobj, const char *new_name); | 119 | int kobject_rename(struct kobject *kobj, const char *new_name); |
120 | 120 | ||
121 | Note kobject_rename does perform any locking or have a solid notion of | 121 | kobject_rename does not perform any locking or have a solid notion of |
122 | what names are valid so the provide must provide their own sanity checking | 122 | what names are valid so the caller must provide their own sanity checking |
123 | and serialization. | 123 | and serialization. |
124 | 124 | ||
125 | There is a function called kobject_set_name() but that is legacy cruft and | 125 | There is a function called kobject_set_name() but that is legacy cruft and |
diff --git a/Documentation/kprobes.txt b/Documentation/kprobes.txt index a79633d702bf..48b3de90eb1e 100644 --- a/Documentation/kprobes.txt +++ b/Documentation/kprobes.txt | |||
@@ -497,7 +497,10 @@ The first column provides the kernel address where the probe is inserted. | |||
497 | The second column identifies the type of probe (k - kprobe, r - kretprobe | 497 | The second column identifies the type of probe (k - kprobe, r - kretprobe |
498 | and j - jprobe), while the third column specifies the symbol+offset of | 498 | and j - jprobe), while the third column specifies the symbol+offset of |
499 | the probe. If the probed function belongs to a module, the module name | 499 | the probe. If the probed function belongs to a module, the module name |
500 | is also specified. | 500 | is also specified. Following columns show probe status. If the probe is on |
501 | a virtual address that is no longer valid (module init sections, module | ||
502 | virtual addresses that correspond to modules that've been unloaded), | ||
503 | such probes are marked with [GONE]. | ||
501 | 504 | ||
502 | /debug/kprobes/enabled: Turn kprobes ON/OFF | 505 | /debug/kprobes/enabled: Turn kprobes ON/OFF |
503 | 506 | ||
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index 71f0fe1fc1b0..898b4987bb80 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -1475,7 +1475,7 @@ Sysfs interface changelog: | |||
1475 | 1475 | ||
1476 | 0x020100: Marker for thinkpad-acpi with hot key NVRAM polling | 1476 | 0x020100: Marker for thinkpad-acpi with hot key NVRAM polling |
1477 | support. If you must, use it to know you should not | 1477 | support. If you must, use it to know you should not |
1478 | start an userspace NVRAM poller (allows to detect when | 1478 | start a userspace NVRAM poller (allows to detect when |
1479 | NVRAM is compiled out by the user because it is | 1479 | NVRAM is compiled out by the user because it is |
1480 | unneeded/undesired in the first place). | 1480 | unneeded/undesired in the first place). |
1481 | 0x020101: Marker for thinkpad-acpi with hot key NVRAM polling | 1481 | 0x020101: Marker for thinkpad-acpi with hot key NVRAM polling |
diff --git a/Documentation/magic-number.txt b/Documentation/magic-number.txt index 95070028d15e..505f19607542 100644 --- a/Documentation/magic-number.txt +++ b/Documentation/magic-number.txt | |||
@@ -125,14 +125,14 @@ TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c | |||
125 | ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h | 125 | ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h |
126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h | 126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h |
127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c | 127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c |
128 | GDA_MAGIC 0x58464552 gda include/asm-mips64/sn/gda.h | 128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h |
129 | RED_MAGIC1 0x5a2cf071 (any) mm/slab.c | 129 | RED_MAGIC1 0x5a2cf071 (any) mm/slab.c |
130 | STL_PORTMAGIC 0x5a7182c9 stlport include/linux/stallion.h | 130 | STL_PORTMAGIC 0x5a7182c9 stlport include/linux/stallion.h |
131 | EEPROM_MAGIC_VALUE 0x5ab478d2 lanai_dev drivers/atm/lanai.c | 131 | EEPROM_MAGIC_VALUE 0x5ab478d2 lanai_dev drivers/atm/lanai.c |
132 | HDLCDRV_MAGIC 0x5ac6e778 hdlcdrv_state include/linux/hdlcdrv.h | 132 | HDLCDRV_MAGIC 0x5ac6e778 hdlcdrv_state include/linux/hdlcdrv.h |
133 | EPCA_MAGIC 0x5c6df104 channel include/linux/epca.h | 133 | EPCA_MAGIC 0x5c6df104 channel include/linux/epca.h |
134 | PCXX_MAGIC 0x5c6df104 channel drivers/char/pcxx.h | 134 | PCXX_MAGIC 0x5c6df104 channel drivers/char/pcxx.h |
135 | KV_MAGIC 0x5f4b565f kernel_vars_s include/asm-mips64/sn/klkernvars.h | 135 | KV_MAGIC 0x5f4b565f kernel_vars_s arch/mips/include/asm/sn/klkernvars.h |
136 | I810_STATE_MAGIC 0x63657373 i810_state sound/oss/i810_audio.c | 136 | I810_STATE_MAGIC 0x63657373 i810_state sound/oss/i810_audio.c |
137 | TRIDENT_STATE_MAGIC 0x63657373 trient_state sound/oss/trident.c | 137 | TRIDENT_STATE_MAGIC 0x63657373 trient_state sound/oss/trident.c |
138 | M3_CARD_MAGIC 0x646e6f50 m3_card sound/oss/maestro3.c | 138 | M3_CARD_MAGIC 0x646e6f50 m3_card sound/oss/maestro3.c |
@@ -158,7 +158,7 @@ CCB_MAGIC 0xf2691ad2 ccb drivers/scsi/ncr53c8xx.c | |||
158 | QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry drivers/scsi/arm/queue.c | 158 | QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry drivers/scsi/arm/queue.c |
159 | QUEUE_MAGIC_USED 0xf7e1cc33 queue_entry drivers/scsi/arm/queue.c | 159 | QUEUE_MAGIC_USED 0xf7e1cc33 queue_entry drivers/scsi/arm/queue.c |
160 | HTB_CMAGIC 0xFEFAFEF1 htb_class net/sched/sch_htb.c | 160 | HTB_CMAGIC 0xFEFAFEF1 htb_class net/sched/sch_htb.c |
161 | NMI_MAGIC 0x48414d4d455201 nmi_s include/asm-mips64/sn/nmi.h | 161 | NMI_MAGIC 0x48414d4d455201 nmi_s arch/mips/include/asm/sn/nmi.h |
162 | 162 | ||
163 | Note that there are also defined special per-driver magic numbers in sound | 163 | Note that there are also defined special per-driver magic numbers in sound |
164 | memory management. See include/sound/sndmagic.h for complete list of them. Many | 164 | memory management. See include/sound/sndmagic.h for complete list of them. Many |
diff --git a/Documentation/memory-hotplug.txt b/Documentation/memory-hotplug.txt index 168117bd6ee8..4c2ecf537a4a 100644 --- a/Documentation/memory-hotplug.txt +++ b/Documentation/memory-hotplug.txt | |||
@@ -124,7 +124,7 @@ config options. | |||
124 | This option can be kernel module too. | 124 | This option can be kernel module too. |
125 | 125 | ||
126 | -------------------------------- | 126 | -------------------------------- |
127 | 3 sysfs files for memory hotplug | 127 | 4 sysfs files for memory hotplug |
128 | -------------------------------- | 128 | -------------------------------- |
129 | All sections have their device information under /sys/devices/system/memory as | 129 | All sections have their device information under /sys/devices/system/memory as |
130 | 130 | ||
@@ -138,11 +138,12 @@ For example, assume 1GiB section size. A device for a memory starting at | |||
138 | (0x100000000 / 1Gib = 4) | 138 | (0x100000000 / 1Gib = 4) |
139 | This device covers address range [0x100000000 ... 0x140000000) | 139 | This device covers address range [0x100000000 ... 0x140000000) |
140 | 140 | ||
141 | Under each section, you can see 3 files. | 141 | Under each section, you can see 4 files. |
142 | 142 | ||
143 | /sys/devices/system/memory/memoryXXX/phys_index | 143 | /sys/devices/system/memory/memoryXXX/phys_index |
144 | /sys/devices/system/memory/memoryXXX/phys_device | 144 | /sys/devices/system/memory/memoryXXX/phys_device |
145 | /sys/devices/system/memory/memoryXXX/state | 145 | /sys/devices/system/memory/memoryXXX/state |
146 | /sys/devices/system/memory/memoryXXX/removable | ||
146 | 147 | ||
147 | 'phys_index' : read-only and contains section id, same as XXX. | 148 | 'phys_index' : read-only and contains section id, same as XXX. |
148 | 'state' : read-write | 149 | 'state' : read-write |
@@ -150,10 +151,20 @@ Under each section, you can see 3 files. | |||
150 | at write: user can specify "online", "offline" command | 151 | at write: user can specify "online", "offline" command |
151 | 'phys_device': read-only: designed to show the name of physical memory device. | 152 | 'phys_device': read-only: designed to show the name of physical memory device. |
152 | This is not well implemented now. | 153 | This is not well implemented now. |
154 | 'removable' : read-only: contains an integer value indicating | ||
155 | whether the memory section is removable or not | ||
156 | removable. A value of 1 indicates that the memory | ||
157 | section is removable and a value of 0 indicates that | ||
158 | it is not removable. | ||
153 | 159 | ||
154 | NOTE: | 160 | NOTE: |
155 | These directories/files appear after physical memory hotplug phase. | 161 | These directories/files appear after physical memory hotplug phase. |
156 | 162 | ||
163 | If CONFIG_NUMA is enabled the | ||
164 | /sys/devices/system/memory/memoryXXX memory section | ||
165 | directories can also be accessed via symbolic links located in | ||
166 | the /sys/devices/system/node/node* directories. For example: | ||
167 | /sys/devices/system/node/node0/memory9 -> ../../memory/memory9 | ||
157 | 168 | ||
158 | -------------------------------- | 169 | -------------------------------- |
159 | 4. Physical memory hot-add phase | 170 | 4. Physical memory hot-add phase |
@@ -365,7 +376,6 @@ node if necessary. | |||
365 | - allowing memory hot-add to ZONE_MOVABLE. maybe we need some switch like | 376 | - allowing memory hot-add to ZONE_MOVABLE. maybe we need some switch like |
366 | sysctl or new control file. | 377 | sysctl or new control file. |
367 | - showing memory section and physical device relationship. | 378 | - showing memory section and physical device relationship. |
368 | - showing memory section and node relationship (maybe good for NUMA) | ||
369 | - showing memory section is under ZONE_MOVABLE or not | 379 | - showing memory section is under ZONE_MOVABLE or not |
370 | - test and make it better memory offlining. | 380 | - test and make it better memory offlining. |
371 | - support HugeTLB page migration and offlining. | 381 | - support HugeTLB page migration and offlining. |
diff --git a/Documentation/mips/AU1xxx_IDE.README b/Documentation/mips/AU1xxx_IDE.README index 25a6ed1aaa5b..f54962aea84d 100644 --- a/Documentation/mips/AU1xxx_IDE.README +++ b/Documentation/mips/AU1xxx_IDE.README | |||
@@ -44,7 +44,7 @@ FILES, CONFIGS AND COMPATABILITY | |||
44 | 44 | ||
45 | Two files are introduced: | 45 | Two files are introduced: |
46 | 46 | ||
47 | a) 'include/asm-mips/mach-au1x00/au1xxx_ide.h' | 47 | a) 'arch/mips/include/asm/mach-au1x00/au1xxx_ide.h' |
48 | containes : struct _auide_hwif | 48 | containes : struct _auide_hwif |
49 | timing parameters for PIO mode 0/1/2/3/4 | 49 | timing parameters for PIO mode 0/1/2/3/4 |
50 | timing parameters for MWDMA 0/1/2 | 50 | timing parameters for MWDMA 0/1/2 |
diff --git a/Documentation/networking/rxrpc.txt b/Documentation/networking/rxrpc.txt index c3669a3fb4af..60d05eb77c64 100644 --- a/Documentation/networking/rxrpc.txt +++ b/Documentation/networking/rxrpc.txt | |||
@@ -540,7 +540,7 @@ A client would issue an operation by: | |||
540 | MSG_MORE should be set in msghdr::msg_flags on all but the last part of | 540 | MSG_MORE should be set in msghdr::msg_flags on all but the last part of |
541 | the request. Multiple requests may be made simultaneously. | 541 | the request. Multiple requests may be made simultaneously. |
542 | 542 | ||
543 | If a call is intended to go to a destination other then the default | 543 | If a call is intended to go to a destination other than the default |
544 | specified through connect(), then msghdr::msg_name should be set on the | 544 | specified through connect(), then msghdr::msg_name should be set on the |
545 | first request message of that call. | 545 | first request message of that call. |
546 | 546 | ||
diff --git a/Documentation/networking/tuntap.txt b/Documentation/networking/tuntap.txt index 839cbb71388b..c0aab985bad9 100644 --- a/Documentation/networking/tuntap.txt +++ b/Documentation/networking/tuntap.txt | |||
@@ -118,7 +118,7 @@ As mentioned above, main purpose of TUN/TAP driver is tunneling. | |||
118 | It is used by VTun (http://vtun.sourceforge.net). | 118 | It is used by VTun (http://vtun.sourceforge.net). |
119 | 119 | ||
120 | Another interesting application using TUN/TAP is pipsecd | 120 | Another interesting application using TUN/TAP is pipsecd |
121 | (http://perso.enst.fr/~beyssac/pipsec/), an userspace IPSec | 121 | (http://perso.enst.fr/~beyssac/pipsec/), a userspace IPSec |
122 | implementation that can use complete kernel routing (unlike FreeS/WAN). | 122 | implementation that can use complete kernel routing (unlike FreeS/WAN). |
123 | 123 | ||
124 | 3. How does Virtual network device actually work ? | 124 | 3. How does Virtual network device actually work ? |
diff --git a/Documentation/powerpc/cpu_features.txt b/Documentation/powerpc/cpu_features.txt index 472739880e87..ffa4183fdb8b 100644 --- a/Documentation/powerpc/cpu_features.txt +++ b/Documentation/powerpc/cpu_features.txt | |||
@@ -31,7 +31,7 @@ anyways). | |||
31 | 31 | ||
32 | After detecting the processor type, the kernel patches out sections of code | 32 | After detecting the processor type, the kernel patches out sections of code |
33 | that shouldn't be used by writing nop's over it. Using cpufeatures requires | 33 | that shouldn't be used by writing nop's over it. Using cpufeatures requires |
34 | just 2 macros (found in include/asm-ppc/cputable.h), as seen in head.S | 34 | just 2 macros (found in arch/powerpc/include/asm/cputable.h), as seen in head.S |
35 | transfer_to_handler: | 35 | transfer_to_handler: |
36 | 36 | ||
37 | #ifdef CONFIG_ALTIVEC | 37 | #ifdef CONFIG_ALTIVEC |
diff --git a/Documentation/s390/Debugging390.txt b/Documentation/s390/Debugging390.txt index d30a281c570f..10711d9f0788 100644 --- a/Documentation/s390/Debugging390.txt +++ b/Documentation/s390/Debugging390.txt | |||
@@ -1402,7 +1402,7 @@ Syscalls are implemented on Linux for S390 by the Supervisor call instruction (S | |||
1402 | possibilities of these as the instruction is made up of a 0xA opcode & the second byte being | 1402 | possibilities of these as the instruction is made up of a 0xA opcode & the second byte being |
1403 | the syscall number. They are traced using the simple command. | 1403 | the syscall number. They are traced using the simple command. |
1404 | TR SVC <Optional value or range> | 1404 | TR SVC <Optional value or range> |
1405 | the syscalls are defined in linux/include/asm-s390/unistd.h | 1405 | the syscalls are defined in linux/arch/s390/include/asm/unistd.h |
1406 | e.g. to trace all file opens just do | 1406 | e.g. to trace all file opens just do |
1407 | TR SVC 5 ( as this is the syscall number of open ) | 1407 | TR SVC 5 ( as this is the syscall number of open ) |
1408 | 1408 | ||
diff --git a/Documentation/s390/cds.txt b/Documentation/s390/cds.txt index c4b7b2bd369a..480a78ef5a1e 100644 --- a/Documentation/s390/cds.txt +++ b/Documentation/s390/cds.txt | |||
@@ -98,7 +98,7 @@ platform. Some of the interface routines are specific to Linux/390 and some | |||
98 | of them can be found on other Linux platforms implementations too. | 98 | of them can be found on other Linux platforms implementations too. |
99 | Miscellaneous function prototypes, data declarations, and macro definitions | 99 | Miscellaneous function prototypes, data declarations, and macro definitions |
100 | can be found in the architecture specific C header file | 100 | can be found in the architecture specific C header file |
101 | linux/include/asm-s390/irq.h. | 101 | linux/arch/s390/include/asm/irq.h. |
102 | 102 | ||
103 | Overview of CDS interface concepts | 103 | Overview of CDS interface concepts |
104 | 104 | ||
diff --git a/Documentation/s390/s390dbf.txt b/Documentation/s390/s390dbf.txt index e05420973698..2d10053dd97e 100644 --- a/Documentation/s390/s390dbf.txt +++ b/Documentation/s390/s390dbf.txt | |||
@@ -2,7 +2,7 @@ S390 Debug Feature | |||
2 | ================== | 2 | ================== |
3 | 3 | ||
4 | files: arch/s390/kernel/debug.c | 4 | files: arch/s390/kernel/debug.c |
5 | include/asm-s390/debug.h | 5 | arch/s390/include/asm/debug.h |
6 | 6 | ||
7 | Description: | 7 | Description: |
8 | ------------ | 8 | ------------ |
diff --git a/Documentation/scsi/ChangeLog.lpfc b/Documentation/scsi/ChangeLog.lpfc index ae3f962a7cfc..ff19a52fe004 100644 --- a/Documentation/scsi/ChangeLog.lpfc +++ b/Documentation/scsi/ChangeLog.lpfc | |||
@@ -733,7 +733,7 @@ Changes from 20040920 to 20041018 | |||
733 | I/O completion path a little more, especially taking care of | 733 | I/O completion path a little more, especially taking care of |
734 | fast-pathing the non-error case. Also removes tons of dead | 734 | fast-pathing the non-error case. Also removes tons of dead |
735 | members and defines from lpfc_scsi.h - e.g. lpfc_target is down | 735 | members and defines from lpfc_scsi.h - e.g. lpfc_target is down |
736 | to nothing more then the lpfc_nodelist pointer. | 736 | to nothing more than the lpfc_nodelist pointer. |
737 | * Added binary sysfs file to issue mbox commands | 737 | * Added binary sysfs file to issue mbox commands |
738 | * Replaced #if __BIG_ENDIAN with #if __BIG_ENDIAN_BITFIELD for | 738 | * Replaced #if __BIG_ENDIAN with #if __BIG_ENDIAN_BITFIELD for |
739 | compatibility with the user space applications. | 739 | compatibility with the user space applications. |
diff --git a/Documentation/scsi/ChangeLog.ncr53c8xx b/Documentation/scsi/ChangeLog.ncr53c8xx index a9f721aeb11c..8b278c10edfd 100644 --- a/Documentation/scsi/ChangeLog.ncr53c8xx +++ b/Documentation/scsi/ChangeLog.ncr53c8xx | |||
@@ -19,7 +19,7 @@ Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr) | |||
19 | 19 | ||
20 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) | 20 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) |
21 | * version ncr53c8xx-3.4.1 | 21 | * version ncr53c8xx-3.4.1 |
22 | - Provide OpenFirmare path through the proc FS on PPC. | 22 | - Provide OpenFirmware path through the proc FS on PPC. |
23 | - Remove trailing argument #2 from a couple of #undefs. | 23 | - Remove trailing argument #2 from a couple of #undefs. |
24 | 24 | ||
25 | Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr) | 25 | Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr) |
diff --git a/Documentation/scsi/ChangeLog.sym53c8xx b/Documentation/scsi/ChangeLog.sym53c8xx index ef985ec348e6..02ffbc1e8a84 100644 --- a/Documentation/scsi/ChangeLog.sym53c8xx +++ b/Documentation/scsi/ChangeLog.sym53c8xx | |||
@@ -81,7 +81,7 @@ Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr) | |||
81 | 81 | ||
82 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) | 82 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) |
83 | * version sym53c8xx-1.7.1 | 83 | * version sym53c8xx-1.7.1 |
84 | - Provide OpenFirmare path through the proc FS on PPC. | 84 | - Provide OpenFirmware path through the proc FS on PPC. |
85 | - Download of on-chip SRAM using memcpy_toio() doesn't work | 85 | - Download of on-chip SRAM using memcpy_toio() doesn't work |
86 | on PPC. Restore previous method (MEMORY MOVE from SCRIPTS). | 86 | on PPC. Restore previous method (MEMORY MOVE from SCRIPTS). |
87 | - Remove trailing argument #2 from a couple of #undefs. | 87 | - Remove trailing argument #2 from a couple of #undefs. |
diff --git a/Documentation/spi/spi-lm70llp b/Documentation/spi/spi-lm70llp index 154bd02220b9..34a9cfd746bd 100644 --- a/Documentation/spi/spi-lm70llp +++ b/Documentation/spi/spi-lm70llp | |||
@@ -13,10 +13,20 @@ Description | |||
13 | This driver provides glue code connecting a National Semiconductor LM70 LLP | 13 | This driver provides glue code connecting a National Semiconductor LM70 LLP |
14 | temperature sensor evaluation board to the kernel's SPI core subsystem. | 14 | temperature sensor evaluation board to the kernel's SPI core subsystem. |
15 | 15 | ||
16 | This is a SPI master controller driver. It can be used in conjunction with | ||
17 | (layered under) the LM70 logical driver (a "SPI protocol driver"). | ||
16 | In effect, this driver turns the parallel port interface on the eval board | 18 | In effect, this driver turns the parallel port interface on the eval board |
17 | into a SPI bus with a single device, which will be driven by the generic | 19 | into a SPI bus with a single device, which will be driven by the generic |
18 | LM70 driver (drivers/hwmon/lm70.c). | 20 | LM70 driver (drivers/hwmon/lm70.c). |
19 | 21 | ||
22 | |||
23 | Hardware Interfacing | ||
24 | -------------------- | ||
25 | The schematic for this particular board (the LM70EVAL-LLP) is | ||
26 | available (on page 4) here: | ||
27 | |||
28 | http://www.national.com/appinfo/tempsensors/files/LM70LLPEVALmanual.pdf | ||
29 | |||
20 | The hardware interfacing on the LM70 LLP eval board is as follows: | 30 | The hardware interfacing on the LM70 LLP eval board is as follows: |
21 | 31 | ||
22 | Parallel LM70 LLP | 32 | Parallel LM70 LLP |
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt index d79eeda7a699..cd05994a49e6 100644 --- a/Documentation/sysctl/vm.txt +++ b/Documentation/sysctl/vm.txt | |||
@@ -41,7 +41,8 @@ Currently, these files are in /proc/sys/vm: | |||
41 | 41 | ||
42 | ============================================================== | 42 | ============================================================== |
43 | 43 | ||
44 | dirty_ratio, dirty_background_ratio, dirty_expire_centisecs, | 44 | dirty_bytes, dirty_ratio, dirty_background_bytes, |
45 | dirty_background_ratio, dirty_expire_centisecs, | ||
45 | dirty_writeback_centisecs, highmem_is_dirtyable, | 46 | dirty_writeback_centisecs, highmem_is_dirtyable, |
46 | vfs_cache_pressure, laptop_mode, block_dump, swap_token_timeout, | 47 | vfs_cache_pressure, laptop_mode, block_dump, swap_token_timeout, |
47 | drop-caches, hugepages_treat_as_movable: | 48 | drop-caches, hugepages_treat_as_movable: |
diff --git a/Documentation/vm/unevictable-lru.txt b/Documentation/vm/unevictable-lru.txt index 125eed560e5a..0706a7282a8c 100644 --- a/Documentation/vm/unevictable-lru.txt +++ b/Documentation/vm/unevictable-lru.txt | |||
@@ -137,13 +137,6 @@ shrink_page_list() where they will be detected when vmscan walks the reverse | |||
137 | map in try_to_unmap(). If try_to_unmap() returns SWAP_MLOCK, shrink_page_list() | 137 | map in try_to_unmap(). If try_to_unmap() returns SWAP_MLOCK, shrink_page_list() |
138 | will cull the page at that point. | 138 | will cull the page at that point. |
139 | 139 | ||
140 | Note that for anonymous pages, shrink_page_list() attempts to add the page to | ||
141 | the swap cache before it tries to unmap the page. To avoid this unnecessary | ||
142 | consumption of swap space, shrink_page_list() calls try_to_munlock() to check | ||
143 | whether any VM_LOCKED vmas map the page without attempting to unmap the page. | ||
144 | If try_to_munlock() returns SWAP_MLOCK, shrink_page_list() will cull the page | ||
145 | without consuming swap space. try_to_munlock() will be described below. | ||
146 | |||
147 | To "cull" an unevictable page, vmscan simply puts the page back on the lru | 140 | To "cull" an unevictable page, vmscan simply puts the page back on the lru |
148 | list using putback_lru_page()--the inverse operation to isolate_lru_page()-- | 141 | list using putback_lru_page()--the inverse operation to isolate_lru_page()-- |
149 | after dropping the page lock. Because the condition which makes the page | 142 | after dropping the page lock. Because the condition which makes the page |
@@ -190,8 +183,8 @@ several places: | |||
190 | in the VM_LOCKED flag being set for the vma. | 183 | in the VM_LOCKED flag being set for the vma. |
191 | 3) in the fault path, if mlocked pages are "culled" in the fault path, | 184 | 3) in the fault path, if mlocked pages are "culled" in the fault path, |
192 | and when a VM_LOCKED stack segment is expanded. | 185 | and when a VM_LOCKED stack segment is expanded. |
193 | 4) as mentioned above, in vmscan:shrink_page_list() with attempting to | 186 | 4) as mentioned above, in vmscan:shrink_page_list() when attempting to |
194 | reclaim a page in a VM_LOCKED vma--via try_to_unmap() or try_to_munlock(). | 187 | reclaim a page in a VM_LOCKED vma via try_to_unmap(). |
195 | 188 | ||
196 | Mlocked pages become unlocked and rescued from the unevictable list when: | 189 | Mlocked pages become unlocked and rescued from the unevictable list when: |
197 | 190 | ||
@@ -260,9 +253,9 @@ mlock_fixup() filters several classes of "special" vmas: | |||
260 | 253 | ||
261 | 2) vmas mapping hugetlbfs page are already effectively pinned into memory. | 254 | 2) vmas mapping hugetlbfs page are already effectively pinned into memory. |
262 | We don't need nor want to mlock() these pages. However, to preserve the | 255 | We don't need nor want to mlock() these pages. However, to preserve the |
263 | prior behavior of mlock()--before the unevictable/mlock changes--mlock_fixup() | 256 | prior behavior of mlock()--before the unevictable/mlock changes-- |
264 | will call make_pages_present() in the hugetlbfs vma range to allocate the | 257 | mlock_fixup() will call make_pages_present() in the hugetlbfs vma range |
265 | huge pages and populate the ptes. | 258 | to allocate the huge pages and populate the ptes. |
266 | 259 | ||
267 | 3) vmas with VM_DONTEXPAND|VM_RESERVED are generally user space mappings of | 260 | 3) vmas with VM_DONTEXPAND|VM_RESERVED are generally user space mappings of |
268 | kernel pages, such as the vdso page, relay channel pages, etc. These pages | 261 | kernel pages, such as the vdso page, relay channel pages, etc. These pages |
@@ -322,7 +315,7 @@ __mlock_vma_pages_range()--the same function used to mlock a vma range-- | |||
322 | passing a flag to indicate that munlock() is being performed. | 315 | passing a flag to indicate that munlock() is being performed. |
323 | 316 | ||
324 | Because the vma access protections could have been changed to PROT_NONE after | 317 | Because the vma access protections could have been changed to PROT_NONE after |
325 | faulting in and mlocking some pages, get_user_pages() was unreliable for visiting | 318 | faulting in and mlocking pages, get_user_pages() was unreliable for visiting |
326 | these pages for munlocking. Because we don't want to leave pages mlocked(), | 319 | these pages for munlocking. Because we don't want to leave pages mlocked(), |
327 | get_user_pages() was enhanced to accept a flag to ignore the permissions when | 320 | get_user_pages() was enhanced to accept a flag to ignore the permissions when |
328 | fetching the pages--all of which should be resident as a result of previous | 321 | fetching the pages--all of which should be resident as a result of previous |
@@ -416,8 +409,8 @@ Mlocked Pages: munmap()/exit()/exec() System Call Handling | |||
416 | When unmapping an mlocked region of memory, whether by an explicit call to | 409 | When unmapping an mlocked region of memory, whether by an explicit call to |
417 | munmap() or via an internal unmap from exit() or exec() processing, we must | 410 | munmap() or via an internal unmap from exit() or exec() processing, we must |
418 | munlock the pages if we're removing the last VM_LOCKED vma that maps the pages. | 411 | munlock the pages if we're removing the last VM_LOCKED vma that maps the pages. |
419 | Before the unevictable/mlock changes, mlocking did not mark the pages in any way, | 412 | Before the unevictable/mlock changes, mlocking did not mark the pages in any |
420 | so unmapping them required no processing. | 413 | way, so unmapping them required no processing. |
421 | 414 | ||
422 | To munlock a range of memory under the unevictable/mlock infrastructure, the | 415 | To munlock a range of memory under the unevictable/mlock infrastructure, the |
423 | munmap() hander and task address space tear down function call | 416 | munmap() hander and task address space tear down function call |
@@ -517,12 +510,10 @@ couldn't be mlocked. | |||
517 | Mlocked pages: try_to_munlock() Reverse Map Scan | 510 | Mlocked pages: try_to_munlock() Reverse Map Scan |
518 | 511 | ||
519 | TODO/FIXME: a better name might be page_mlocked()--analogous to the | 512 | TODO/FIXME: a better name might be page_mlocked()--analogous to the |
520 | page_referenced() reverse map walker--especially if we continue to call this | 513 | page_referenced() reverse map walker. |
521 | from shrink_page_list(). See related TODO/FIXME below. | ||
522 | 514 | ||
523 | When munlock_vma_page()--see "Mlocked Pages: munlock()/munlockall() System | 515 | When munlock_vma_page()--see "Mlocked Pages: munlock()/munlockall() |
524 | Call Handling" above--tries to munlock a page, or when shrink_page_list() | 516 | System Call Handling" above--tries to munlock a page, it needs to |
525 | encounters an anonymous page that is not yet in the swap cache, they need to | ||
526 | determine whether or not the page is mapped by any VM_LOCKED vma, without | 517 | determine whether or not the page is mapped by any VM_LOCKED vma, without |
527 | actually attempting to unmap all ptes from the page. For this purpose, the | 518 | actually attempting to unmap all ptes from the page. For this purpose, the |
528 | unevictable/mlock infrastructure introduced a variant of try_to_unmap() called | 519 | unevictable/mlock infrastructure introduced a variant of try_to_unmap() called |
@@ -535,10 +526,7 @@ for VM_LOCKED vmas. When such a vma is found for anonymous pages and file | |||
535 | pages mapped in linear VMAs, as in the try_to_unmap() case, the functions | 526 | pages mapped in linear VMAs, as in the try_to_unmap() case, the functions |
536 | attempt to acquire the associated mmap semphore, mlock the page via | 527 | attempt to acquire the associated mmap semphore, mlock the page via |
537 | mlock_vma_page() and return SWAP_MLOCK. This effectively undoes the | 528 | mlock_vma_page() and return SWAP_MLOCK. This effectively undoes the |
538 | pre-clearing of the page's PG_mlocked done by munlock_vma_page() and informs | 529 | pre-clearing of the page's PG_mlocked done by munlock_vma_page. |
539 | shrink_page_list() that the anonymous page should be culled rather than added | ||
540 | to the swap cache in preparation for a try_to_unmap() that will almost | ||
541 | certainly fail. | ||
542 | 530 | ||
543 | If try_to_unmap() is unable to acquire a VM_LOCKED vma's associated mmap | 531 | If try_to_unmap() is unable to acquire a VM_LOCKED vma's associated mmap |
544 | semaphore, it will return SWAP_AGAIN. This will allow shrink_page_list() | 532 | semaphore, it will return SWAP_AGAIN. This will allow shrink_page_list() |
@@ -557,10 +545,7 @@ However, the scan can terminate when it encounters a VM_LOCKED vma and can | |||
557 | successfully acquire the vma's mmap semphore for read and mlock the page. | 545 | successfully acquire the vma's mmap semphore for read and mlock the page. |
558 | Although try_to_munlock() can be called many [very many!] times when | 546 | Although try_to_munlock() can be called many [very many!] times when |
559 | munlock()ing a large region or tearing down a large address space that has been | 547 | munlock()ing a large region or tearing down a large address space that has been |
560 | mlocked via mlockall(), overall this is a fairly rare event. In addition, | 548 | mlocked via mlockall(), overall this is a fairly rare event. |
561 | although shrink_page_list() calls try_to_munlock() for every anonymous page that | ||
562 | it handles that is not yet in the swap cache, on average anonymous pages will | ||
563 | have very short reverse map lists. | ||
564 | 549 | ||
565 | Mlocked Page: Page Reclaim in shrink_*_list() | 550 | Mlocked Page: Page Reclaim in shrink_*_list() |
566 | 551 | ||
@@ -588,8 +573,8 @@ Some examples of these unevictable pages on the LRU lists are: | |||
588 | munlock_vma_page() was forced to let the page back on to the normal | 573 | munlock_vma_page() was forced to let the page back on to the normal |
589 | LRU list for vmscan to handle. | 574 | LRU list for vmscan to handle. |
590 | 575 | ||
591 | shrink_inactive_list() also culls any unevictable pages that it finds | 576 | shrink_inactive_list() also culls any unevictable pages that it finds on |
592 | on the inactive lists, again diverting them to the appropriate zone's unevictable | 577 | the inactive lists, again diverting them to the appropriate zone's unevictable |
593 | lru list. shrink_inactive_list() should only see SHM_LOCKed pages that became | 578 | lru list. shrink_inactive_list() should only see SHM_LOCKed pages that became |
594 | SHM_LOCKed after shrink_active_list() had moved them to the inactive list, or | 579 | SHM_LOCKed after shrink_active_list() had moved them to the inactive list, or |
595 | pages mapped into VM_LOCKED vmas that munlock_vma_page() couldn't isolate from | 580 | pages mapped into VM_LOCKED vmas that munlock_vma_page() couldn't isolate from |
@@ -597,19 +582,7 @@ the lru to recheck via try_to_munlock(). shrink_inactive_list() won't notice | |||
597 | the latter, but will pass on to shrink_page_list(). | 582 | the latter, but will pass on to shrink_page_list(). |
598 | 583 | ||
599 | shrink_page_list() again culls obviously unevictable pages that it could | 584 | shrink_page_list() again culls obviously unevictable pages that it could |
600 | encounter for similar reason to shrink_inactive_list(). As already discussed, | 585 | encounter for similar reason to shrink_inactive_list(). Pages mapped into |
601 | shrink_page_list() proactively looks for anonymous pages that should have | ||
602 | PG_mlocked set but don't--these would not be detected by page_evictable()--to | ||
603 | avoid adding them to the swap cache unnecessarily. File pages mapped into | ||
604 | VM_LOCKED vmas but without PG_mlocked set will make it all the way to | 586 | VM_LOCKED vmas but without PG_mlocked set will make it all the way to |
605 | try_to_unmap(). shrink_page_list() will divert them to the unevictable list when | 587 | try_to_unmap(). shrink_page_list() will divert them to the unevictable list |
606 | try_to_unmap() returns SWAP_MLOCK, as discussed above. | 588 | when try_to_unmap() returns SWAP_MLOCK, as discussed above. |
607 | |||
608 | TODO/FIXME: If we can enhance the swap cache to reliably remove entries | ||
609 | with page_count(page) > 2, as long as all ptes are mapped to the page and | ||
610 | not the swap entry, we can probably remove the call to try_to_munlock() in | ||
611 | shrink_page_list() and just remove the page from the swap cache when | ||
612 | try_to_unmap() returns SWAP_MLOCK. Currently, remove_exclusive_swap_page() | ||
613 | doesn't seem to allow that. | ||
614 | |||
615 | |||
diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt index 169ad423a3d1..4f913857b8a2 100644 --- a/Documentation/x86/zero-page.txt +++ b/Documentation/x86/zero-page.txt | |||
@@ -3,7 +3,7 @@ protocol of kernel. These should be filled by bootloader or 16-bit | |||
3 | real-mode setup code of the kernel. References/settings to it mainly | 3 | real-mode setup code of the kernel. References/settings to it mainly |
4 | are in: | 4 | are in: |
5 | 5 | ||
6 | include/asm-x86/bootparam.h | 6 | arch/x86/include/asm/bootparam.h |
7 | 7 | ||
8 | 8 | ||
9 | Offset Proto Name Meaning | 9 | Offset Proto Name Meaning |