diff options
| author | Paul Mackerras <paulus@samba.org> | 2008-06-08 22:19:41 -0400 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2008-06-08 22:19:41 -0400 |
| commit | 8a3e1c670e503ddd6f6c373b307f38b783ee3a50 (patch) | |
| tree | 03094e8425b750d2693a271ebc89b49312e5476a /Documentation | |
| parent | e026892c85571e12f11abffde5a90bcc704d663e (diff) | |
| parent | 60d5019be8acef268f4676d229c490186d338fbc (diff) | |
Merge branch 'merge'
Conflicts:
arch/powerpc/sysdev/fsl_soc.c
Diffstat (limited to 'Documentation')
| -rw-r--r-- | Documentation/ABI/testing/sysfs-class-bdi | 4 | ||||
| -rw-r--r-- | Documentation/DocBook/kernel-locking.tmpl | 25 | ||||
| -rw-r--r-- | Documentation/SubmittingPatches | 46 | ||||
| -rw-r--r-- | Documentation/cpu-freq/governors.txt | 8 | ||||
| -rw-r--r-- | Documentation/cpusets.txt | 9 | ||||
| -rw-r--r-- | Documentation/hwmon/ibmaem | 37 | ||||
| -rw-r--r-- | Documentation/kernel-doc-nano-HOWTO.txt | 99 | ||||
| -rw-r--r-- | Documentation/kernel-docs.txt | 8 | ||||
| -rw-r--r-- | Documentation/lguest/lguest.c | 12 | ||||
| -rw-r--r-- | Documentation/networking/arcnet.txt | 2 | ||||
| -rw-r--r-- | Documentation/networking/bridge.txt | 2 | ||||
| -rw-r--r-- | Documentation/video4linux/CARDLIST.cx88 | 2 | ||||
| -rw-r--r-- | Documentation/video4linux/cx18.txt | 4 | ||||
| -rw-r--r-- | Documentation/vm/pagemap.txt | 77 |
14 files changed, 314 insertions, 21 deletions
diff --git a/Documentation/ABI/testing/sysfs-class-bdi b/Documentation/ABI/testing/sysfs-class-bdi index 5ac1e01bbd48..5f500977b42f 100644 --- a/Documentation/ABI/testing/sysfs-class-bdi +++ b/Documentation/ABI/testing/sysfs-class-bdi | |||
| @@ -14,6 +14,10 @@ MAJOR:MINOR | |||
| 14 | non-block filesystems which provide their own BDI, such as NFS | 14 | non-block filesystems which provide their own BDI, such as NFS |
| 15 | and FUSE. | 15 | and FUSE. |
| 16 | 16 | ||
| 17 | MAJOR:MINOR-fuseblk | ||
| 18 | |||
| 19 | Value of st_dev on fuseblk filesystems. | ||
| 20 | |||
| 17 | default | 21 | default |
| 18 | 22 | ||
| 19 | The default backing dev, used for non-block device backed | 23 | The default backing dev, used for non-block device backed |
diff --git a/Documentation/DocBook/kernel-locking.tmpl b/Documentation/DocBook/kernel-locking.tmpl index 77c42f40be5d..2510763295d0 100644 --- a/Documentation/DocBook/kernel-locking.tmpl +++ b/Documentation/DocBook/kernel-locking.tmpl | |||
| @@ -703,6 +703,31 @@ | |||
| 703 | </sect1> | 703 | </sect1> |
| 704 | </chapter> | 704 | </chapter> |
| 705 | 705 | ||
| 706 | <chapter id="trylock-functions"> | ||
| 707 | <title>The trylock Functions</title> | ||
| 708 | <para> | ||
| 709 | There are functions that try to acquire a lock only once and immediately | ||
| 710 | return a value telling about success or failure to acquire the lock. | ||
| 711 | They can be used if you need no access to the data protected with the lock | ||
| 712 | when some other thread is holding the lock. You should acquire the lock | ||
| 713 | later if you then need access to the data protected with the lock. | ||
| 714 | </para> | ||
| 715 | |||
| 716 | <para> | ||
| 717 | <function>spin_trylock()</function> does not spin but returns non-zero if | ||
| 718 | it acquires the spinlock on the first try or 0 if not. This function can | ||
| 719 | be used in all contexts like <function>spin_lock</function>: you must have | ||
| 720 | disabled the contexts that might interrupt you and acquire the spin lock. | ||
| 721 | </para> | ||
| 722 | |||
| 723 | <para> | ||
| 724 | <function>mutex_trylock()</function> does not suspend your task | ||
| 725 | but returns non-zero if it could lock the mutex on the first try | ||
| 726 | or 0 if not. This function cannot be safely used in hardware or software | ||
| 727 | interrupt contexts despite not sleeping. | ||
| 728 | </para> | ||
| 729 | </chapter> | ||
| 730 | |||
| 706 | <chapter id="Examples"> | 731 | <chapter id="Examples"> |
| 707 | <title>Common Examples</title> | 732 | <title>Common Examples</title> |
| 708 | <para> | 733 | <para> |
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index 9c93a03ea33b..118ca6e9404f 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches | |||
| @@ -327,6 +327,52 @@ Some people also put extra tags at the end. They'll just be ignored for | |||
| 327 | now, but you can do this to mark internal company procedures or just | 327 | now, but you can do this to mark internal company procedures or just |
| 328 | point out some special detail about the sign-off. | 328 | point out some special detail about the sign-off. |
| 329 | 329 | ||
| 330 | If you are a subsystem or branch maintainer, sometimes you need to slightly | ||
| 331 | modify patches you receive in order to merge them, because the code is not | ||
| 332 | exactly the same in your tree and the submitters'. If you stick strictly to | ||
| 333 | rule (c), you should ask the submitter to rediff, but this is a totally | ||
| 334 | counter-productive waste of time and energy. Rule (b) allows you to adjust | ||
| 335 | the code, but then it is very impolite to change one submitter's code and | ||
| 336 | make him endorse your bugs. To solve this problem, it is recommended that | ||
| 337 | you add a line between the last Signed-off-by header and yours, indicating | ||
| 338 | the nature of your changes. While there is nothing mandatory about this, it | ||
| 339 | seems like prepending the description with your mail and/or name, all | ||
| 340 | enclosed in square brackets, is noticeable enough to make it obvious that | ||
| 341 | you are responsible for last-minute changes. Example : | ||
| 342 | |||
| 343 | Signed-off-by: Random J Developer <random@developer.example.org> | ||
| 344 | [lucky@maintainer.example.org: struct foo moved from foo.c to foo.h] | ||
| 345 | Signed-off-by: Lucky K Maintainer <lucky@maintainer.example.org> | ||
| 346 | |||
| 347 | This practise is particularly helpful if you maintain a stable branch and | ||
| 348 | want at the same time to credit the author, track changes, merge the fix, | ||
| 349 | and protect the submitter from complaints. Note that under no circumstances | ||
| 350 | can you change the author's identity (the From header), as it is the one | ||
| 351 | which appears in the changelog. | ||
| 352 | |||
| 353 | Special note to back-porters: It seems to be a common and useful practise | ||
| 354 | to insert an indication of the origin of a patch at the top of the commit | ||
| 355 | message (just after the subject line) to facilitate tracking. For instance, | ||
| 356 | here's what we see in 2.6-stable : | ||
| 357 | |||
| 358 | Date: Tue May 13 19:10:30 2008 +0000 | ||
| 359 | |||
| 360 | SCSI: libiscsi regression in 2.6.25: fix nop timer handling | ||
| 361 | |||
| 362 | commit 4cf1043593db6a337f10e006c23c69e5fc93e722 upstream | ||
| 363 | |||
| 364 | And here's what appears in 2.4 : | ||
| 365 | |||
| 366 | Date: Tue May 13 22:12:27 2008 +0200 | ||
| 367 | |||
| 368 | wireless, airo: waitbusy() won't delay | ||
| 369 | |||
| 370 | [backport of 2.6 commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a] | ||
| 371 | |||
| 372 | Whatever the format, this information provides a valuable help to people | ||
| 373 | tracking your trees, and to people trying to trouble-shoot bugs in your | ||
| 374 | tree. | ||
| 375 | |||
| 330 | 376 | ||
| 331 | 13) When to use Acked-by: and Cc: | 377 | 13) When to use Acked-by: and Cc: |
| 332 | 378 | ||
diff --git a/Documentation/cpu-freq/governors.txt b/Documentation/cpu-freq/governors.txt index 6a9c55bd556b..dcec0564d040 100644 --- a/Documentation/cpu-freq/governors.txt +++ b/Documentation/cpu-freq/governors.txt | |||
| @@ -129,14 +129,6 @@ to its default value of '80' it means that between the checking | |||
| 129 | intervals the CPU needs to be on average more than 80% in use to then | 129 | intervals the CPU needs to be on average more than 80% in use to then |
| 130 | decide that the CPU frequency needs to be increased. | 130 | decide that the CPU frequency needs to be increased. |
| 131 | 131 | ||
| 132 | sampling_down_factor: this parameter controls the rate that the CPU | ||
| 133 | makes a decision on when to decrease the frequency. When set to its | ||
| 134 | default value of '5' it means that at 1/5 the sampling_rate the kernel | ||
| 135 | makes a decision to lower the frequency. Five "lower rate" decisions | ||
| 136 | have to be made in a row before the CPU frequency is actually lower. | ||
| 137 | If set to '1' then the frequency decreases as quickly as it increases, | ||
| 138 | if set to '2' it decreases at half the rate of the increase. | ||
| 139 | |||
| 140 | ignore_nice_load: this parameter takes a value of '0' or '1'. When | 132 | ignore_nice_load: this parameter takes a value of '0' or '1'. When |
| 141 | set to '0' (its default), all processes are counted towards the | 133 | set to '0' (its default), all processes are counted towards the |
| 142 | 'cpu utilisation' value. When set to '1', the processes that are | 134 | 'cpu utilisation' value. When set to '1', the processes that are |
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt index fb7b361e6eea..d803c5c68ab5 100644 --- a/Documentation/cpusets.txt +++ b/Documentation/cpusets.txt | |||
| @@ -199,7 +199,7 @@ using the sched_setaffinity, mbind and set_mempolicy system calls. | |||
| 199 | The following rules apply to each cpuset: | 199 | The following rules apply to each cpuset: |
| 200 | 200 | ||
| 201 | - Its CPUs and Memory Nodes must be a subset of its parents. | 201 | - Its CPUs and Memory Nodes must be a subset of its parents. |
| 202 | - It can only be marked exclusive if its parent is. | 202 | - It can't be marked exclusive unless its parent is. |
| 203 | - If its cpu or memory is exclusive, they may not overlap any sibling. | 203 | - If its cpu or memory is exclusive, they may not overlap any sibling. |
| 204 | 204 | ||
| 205 | These rules, and the natural hierarchy of cpusets, enable efficient | 205 | These rules, and the natural hierarchy of cpusets, enable efficient |
| @@ -345,7 +345,7 @@ is modified to perform an inline check for this PF_SPREAD_PAGE task | |||
| 345 | flag, and if set, a call to a new routine cpuset_mem_spread_node() | 345 | flag, and if set, a call to a new routine cpuset_mem_spread_node() |
| 346 | returns the node to prefer for the allocation. | 346 | returns the node to prefer for the allocation. |
| 347 | 347 | ||
| 348 | Similarly, setting 'memory_spread_cache' turns on the flag | 348 | Similarly, setting 'memory_spread_slab' turns on the flag |
| 349 | PF_SPREAD_SLAB, and appropriately marked slab caches will allocate | 349 | PF_SPREAD_SLAB, and appropriately marked slab caches will allocate |
| 350 | pages from the node returned by cpuset_mem_spread_node(). | 350 | pages from the node returned by cpuset_mem_spread_node(). |
| 351 | 351 | ||
| @@ -709,7 +709,10 @@ Now you want to do something with this cpuset. | |||
| 709 | 709 | ||
| 710 | In this directory you can find several files: | 710 | In this directory you can find several files: |
| 711 | # ls | 711 | # ls |
| 712 | cpus cpu_exclusive mems mem_exclusive mem_hardwall tasks | 712 | cpu_exclusive memory_migrate mems tasks |
| 713 | cpus memory_pressure notify_on_release | ||
| 714 | mem_exclusive memory_spread_page sched_load_balance | ||
| 715 | mem_hardwall memory_spread_slab sched_relax_domain_level | ||
| 713 | 716 | ||
| 714 | Reading them will give you information about the state of this cpuset: | 717 | Reading them will give you information about the state of this cpuset: |
| 715 | the CPUs and Memory Nodes it can use, the processes that are using | 718 | the CPUs and Memory Nodes it can use, the processes that are using |
diff --git a/Documentation/hwmon/ibmaem b/Documentation/hwmon/ibmaem new file mode 100644 index 000000000000..2fefaf582a43 --- /dev/null +++ b/Documentation/hwmon/ibmaem | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | Kernel driver ibmaem | ||
| 2 | ====================== | ||
| 3 | |||
| 4 | Supported systems: | ||
| 5 | * Any recent IBM System X server with Active Energy Manager support. | ||
| 6 | This includes the x3350, x3550, x3650, x3655, x3755, x3850 M2, | ||
| 7 | x3950 M2, and certain HS2x/LS2x/QS2x blades. The IPMI host interface | ||
| 8 | driver ("ipmi-si") needs to be loaded for this driver to do anything. | ||
| 9 | Prefix: 'ibmaem' | ||
| 10 | Datasheet: Not available | ||
| 11 | |||
| 12 | Author: Darrick J. Wong | ||
| 13 | |||
| 14 | Description | ||
| 15 | ----------- | ||
| 16 | |||
| 17 | This driver implements sensor reading support for the energy and power | ||
| 18 | meters available on various IBM System X hardware through the BMC. All | ||
| 19 | sensor banks will be exported as platform devices; this driver can talk | ||
| 20 | to both v1 and v2 interfaces. This driver is completely separate from the | ||
| 21 | older ibmpex driver. | ||
| 22 | |||
| 23 | The v1 AEM interface has a simple set of features to monitor energy use. | ||
| 24 | There is a register that displays an estimate of raw energy consumption | ||
| 25 | since the last BMC reset, and a power sensor that returns average power | ||
| 26 | use over a configurable interval. | ||
| 27 | |||
| 28 | The v2 AEM interface is a bit more sophisticated, being able to present | ||
| 29 | a wider range of energy and power use registers, the power cap as | ||
| 30 | set by the AEM software, and temperature sensors. | ||
| 31 | |||
| 32 | Special Features | ||
| 33 | ---------------- | ||
| 34 | |||
| 35 | The "power_cap" value displays the current system power cap, as set by | ||
| 36 | the Active Energy Manager software. Setting the power cap from the host | ||
| 37 | is not currently supported. | ||
diff --git a/Documentation/kernel-doc-nano-HOWTO.txt b/Documentation/kernel-doc-nano-HOWTO.txt index 2075c0658bf5..0bd32748a467 100644 --- a/Documentation/kernel-doc-nano-HOWTO.txt +++ b/Documentation/kernel-doc-nano-HOWTO.txt | |||
| @@ -1,6 +1,105 @@ | |||
| 1 | kernel-doc nano-HOWTO | 1 | kernel-doc nano-HOWTO |
| 2 | ===================== | 2 | ===================== |
| 3 | 3 | ||
| 4 | How to format kernel-doc comments | ||
| 5 | --------------------------------- | ||
| 6 | |||
| 7 | In order to provide embedded, 'C' friendly, easy to maintain, | ||
| 8 | but consistent and extractable documentation of the functions and | ||
| 9 | data structures in the Linux kernel, the Linux kernel has adopted | ||
| 10 | a consistent style for documenting functions and their parameters, | ||
| 11 | and structures and their members. | ||
| 12 | |||
| 13 | The format for this documentation is called the kernel-doc format. | ||
| 14 | It is documented in this Documentation/kernel-doc-nano-HOWTO.txt file. | ||
| 15 | |||
| 16 | This style embeds the documentation within the source files, using | ||
| 17 | a few simple conventions. The scripts/kernel-doc perl script, some | ||
| 18 | SGML templates in Documentation/DocBook, and other tools understand | ||
| 19 | these conventions, and are used to extract this embedded documentation | ||
| 20 | into various documents. | ||
| 21 | |||
| 22 | In order to provide good documentation of kernel functions and data | ||
| 23 | structures, please use the following conventions to format your | ||
| 24 | kernel-doc comments in Linux kernel source. | ||
| 25 | |||
| 26 | We definitely need kernel-doc formatted documentation for functions | ||
| 27 | that are exported to loadable modules using EXPORT_SYMBOL. | ||
| 28 | |||
| 29 | We also look to provide kernel-doc formatted documentation for | ||
| 30 | functions externally visible to other kernel files (not marked | ||
| 31 | "static"). | ||
| 32 | |||
| 33 | We also recommend providing kernel-doc formatted documentation | ||
| 34 | for private (file "static") routines, for consistency of kernel | ||
| 35 | source code layout. But this is lower priority and at the | ||
| 36 | discretion of the MAINTAINER of that kernel source file. | ||
| 37 | |||
| 38 | Data structures visible in kernel include files should also be | ||
| 39 | documented using kernel-doc formatted comments. | ||
| 40 | |||
| 41 | The opening comment mark "/**" is reserved for kernel-doc comments. | ||
| 42 | Only comments so marked will be considered by the kernel-doc scripts, | ||
| 43 | and any comment so marked must be in kernel-doc format. Do not use | ||
| 44 | "/**" to be begin a comment block unless the comment block contains | ||
| 45 | kernel-doc formatted comments. The closing comment marker for | ||
| 46 | kernel-doc comments can be either "*/" or "**/". | ||
| 47 | |||
| 48 | Kernel-doc comments should be placed just before the function | ||
| 49 | or data structure being described. | ||
| 50 | |||
| 51 | Example kernel-doc function comment: | ||
| 52 | |||
| 53 | /** | ||
| 54 | * foobar() - short function description of foobar | ||
| 55 | * @arg1: Describe the first argument to foobar. | ||
| 56 | * @arg2: Describe the second argument to foobar. | ||
| 57 | * One can provide multiple line descriptions | ||
| 58 | * for arguments. | ||
| 59 | * | ||
| 60 | * A longer description, with more discussion of the function foobar() | ||
| 61 | * that might be useful to those using or modifying it. Begins with | ||
| 62 | * empty comment line, and may include additional embedded empty | ||
| 63 | * comment lines. | ||
| 64 | * | ||
| 65 | * The longer description can have multiple paragraphs. | ||
| 66 | **/ | ||
| 67 | |||
| 68 | The first line, with the short description, must be on a single line. | ||
| 69 | |||
| 70 | The @argument descriptions must begin on the very next line following | ||
| 71 | this opening short function description line, with no intervening | ||
| 72 | empty comment lines. | ||
| 73 | |||
| 74 | Example kernel-doc data structure comment. | ||
| 75 | |||
| 76 | /** | ||
| 77 | * struct blah - the basic blah structure | ||
| 78 | * @mem1: describe the first member of struct blah | ||
| 79 | * @mem2: describe the second member of struct blah, | ||
| 80 | * perhaps with more lines and words. | ||
| 81 | * | ||
| 82 | * Longer description of this structure. | ||
| 83 | **/ | ||
| 84 | |||
| 85 | The kernel-doc function comments describe each parameter to the | ||
| 86 | function, in order, with the @name lines. | ||
| 87 | |||
| 88 | The kernel-doc data structure comments describe each structure member | ||
| 89 | in the data structure, with the @name lines. | ||
| 90 | |||
| 91 | The longer description formatting is "reflowed", losing your line | ||
| 92 | breaks. So presenting carefully formatted lists within these | ||
| 93 | descriptions won't work so well; derived documentation will lose | ||
| 94 | the formatting. | ||
| 95 | |||
| 96 | See the section below "How to add extractable documentation to your | ||
| 97 | source files" for more details and notes on how to format kernel-doc | ||
| 98 | comments. | ||
| 99 | |||
| 100 | Components of the kernel-doc system | ||
| 101 | ----------------------------------- | ||
| 102 | |||
| 4 | Many places in the source tree have extractable documentation in the | 103 | Many places in the source tree have extractable documentation in the |
| 5 | form of block comments above functions. The components of this system | 104 | form of block comments above functions. The components of this system |
| 6 | are: | 105 | are: |
diff --git a/Documentation/kernel-docs.txt b/Documentation/kernel-docs.txt index 5a4ef48224ae..28cdc2af2131 100644 --- a/Documentation/kernel-docs.txt +++ b/Documentation/kernel-docs.txt | |||
| @@ -715,14 +715,14 @@ | |||
| 715 | 715 | ||
| 716 | * Name: "Gary's Encyclopedia - The Linux Kernel" | 716 | * Name: "Gary's Encyclopedia - The Linux Kernel" |
| 717 | Author: Gary (I suppose...). | 717 | Author: Gary (I suppose...). |
| 718 | URL: http://www.lisoleg.net/cgi-bin/lisoleg.pl?view=kernel.htm | 718 | URL: http://slencyclopedia.berlios.de/index.html |
| 719 | Keywords: links, not found here?. | 719 | Keywords: linux, community, everything! |
| 720 | Description: Gary's Encyclopedia exists to allow the rapid finding | 720 | Description: Gary's Encyclopedia exists to allow the rapid finding |
| 721 | of documentation and other information of interest to GNU/Linux | 721 | of documentation and other information of interest to GNU/Linux |
| 722 | users. It has about 4000 links to external pages in 150 major | 722 | users. It has about 4000 links to external pages in 150 major |
| 723 | categories. This link is for kernel-specific links, documents, | 723 | categories. This link is for kernel-specific links, documents, |
| 724 | sites... Look there if you could not find here what you were | 724 | sites... This list is now hosted by developer.Berlios.de, |
| 725 | looking for. | 725 | but seems not to have been updated since sometime in 1999. |
| 726 | 726 | ||
| 727 | * Name: "The home page of Linux-MM" | 727 | * Name: "The home page of Linux-MM" |
| 728 | Author: The Linux-MM team. | 728 | Author: The Linux-MM team. |
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index 3be8ab2a886a..82fafe0429fe 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c | |||
| @@ -157,6 +157,9 @@ struct virtqueue | |||
| 157 | 157 | ||
| 158 | /* The routine to call when the Guest pings us. */ | 158 | /* The routine to call when the Guest pings us. */ |
| 159 | void (*handle_output)(int fd, struct virtqueue *me); | 159 | void (*handle_output)(int fd, struct virtqueue *me); |
| 160 | |||
| 161 | /* Outstanding buffers */ | ||
| 162 | unsigned int inflight; | ||
| 160 | }; | 163 | }; |
| 161 | 164 | ||
| 162 | /* Remember the arguments to the program so we can "reboot" */ | 165 | /* Remember the arguments to the program so we can "reboot" */ |
| @@ -702,6 +705,7 @@ static unsigned get_vq_desc(struct virtqueue *vq, | |||
| 702 | errx(1, "Looped descriptor"); | 705 | errx(1, "Looped descriptor"); |
| 703 | } while ((i = next_desc(vq, i)) != vq->vring.num); | 706 | } while ((i = next_desc(vq, i)) != vq->vring.num); |
| 704 | 707 | ||
| 708 | vq->inflight++; | ||
| 705 | return head; | 709 | return head; |
| 706 | } | 710 | } |
| 707 | 711 | ||
| @@ -719,6 +723,7 @@ static void add_used(struct virtqueue *vq, unsigned int head, int len) | |||
| 719 | /* Make sure buffer is written before we update index. */ | 723 | /* Make sure buffer is written before we update index. */ |
| 720 | wmb(); | 724 | wmb(); |
| 721 | vq->vring.used->idx++; | 725 | vq->vring.used->idx++; |
| 726 | vq->inflight--; | ||
| 722 | } | 727 | } |
| 723 | 728 | ||
| 724 | /* This actually sends the interrupt for this virtqueue */ | 729 | /* This actually sends the interrupt for this virtqueue */ |
| @@ -726,8 +731,9 @@ static void trigger_irq(int fd, struct virtqueue *vq) | |||
| 726 | { | 731 | { |
| 727 | unsigned long buf[] = { LHREQ_IRQ, vq->config.irq }; | 732 | unsigned long buf[] = { LHREQ_IRQ, vq->config.irq }; |
| 728 | 733 | ||
| 729 | /* If they don't want an interrupt, don't send one. */ | 734 | /* If they don't want an interrupt, don't send one, unless empty. */ |
| 730 | if (vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT) | 735 | if ((vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT) |
| 736 | && vq->inflight) | ||
| 731 | return; | 737 | return; |
| 732 | 738 | ||
| 733 | /* Send the Guest an interrupt tell them we used something up. */ | 739 | /* Send the Guest an interrupt tell them we used something up. */ |
| @@ -1107,6 +1113,7 @@ static void add_virtqueue(struct device *dev, unsigned int num_descs, | |||
| 1107 | vq->next = NULL; | 1113 | vq->next = NULL; |
| 1108 | vq->last_avail_idx = 0; | 1114 | vq->last_avail_idx = 0; |
| 1109 | vq->dev = dev; | 1115 | vq->dev = dev; |
| 1116 | vq->inflight = 0; | ||
| 1110 | 1117 | ||
| 1111 | /* Initialize the configuration. */ | 1118 | /* Initialize the configuration. */ |
| 1112 | vq->config.num = num_descs; | 1119 | vq->config.num = num_descs; |
| @@ -1368,6 +1375,7 @@ static void setup_tun_net(const char *arg) | |||
| 1368 | 1375 | ||
| 1369 | /* Tell Guest what MAC address to use. */ | 1376 | /* Tell Guest what MAC address to use. */ |
| 1370 | add_feature(dev, VIRTIO_NET_F_MAC); | 1377 | add_feature(dev, VIRTIO_NET_F_MAC); |
| 1378 | add_feature(dev, VIRTIO_F_NOTIFY_ON_EMPTY); | ||
| 1371 | set_config(dev, sizeof(conf), &conf); | 1379 | set_config(dev, sizeof(conf), &conf); |
| 1372 | 1380 | ||
| 1373 | /* We don't need the socket any more; setup is done. */ | 1381 | /* We don't need the socket any more; setup is done. */ |
diff --git a/Documentation/networking/arcnet.txt b/Documentation/networking/arcnet.txt index 770fc41a78e8..796012540386 100644 --- a/Documentation/networking/arcnet.txt +++ b/Documentation/networking/arcnet.txt | |||
| @@ -46,7 +46,7 @@ These are the ARCnet drivers for Linux. | |||
| 46 | 46 | ||
| 47 | 47 | ||
| 48 | This new release (2.91) has been put together by David Woodhouse | 48 | This new release (2.91) has been put together by David Woodhouse |
| 49 | <dwmw2@cam.ac.uk>, in an attempt to tidy up the driver after adding support | 49 | <dwmw2@infradead.org>, in an attempt to tidy up the driver after adding support |
| 50 | for yet another chipset. Now the generic support has been separated from the | 50 | for yet another chipset. Now the generic support has been separated from the |
| 51 | individual chipset drivers, and the source files aren't quite so packed with | 51 | individual chipset drivers, and the source files aren't quite so packed with |
| 52 | #ifdefs! I've changed this file a bit, but kept it in the first person from | 52 | #ifdefs! I've changed this file a bit, but kept it in the first person from |
diff --git a/Documentation/networking/bridge.txt b/Documentation/networking/bridge.txt index bdae2db4119c..bec69a8a1697 100644 --- a/Documentation/networking/bridge.txt +++ b/Documentation/networking/bridge.txt | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | In order to use the Ethernet bridging functionality, you'll need the | 1 | In order to use the Ethernet bridging functionality, you'll need the |
| 2 | userspace tools. These programs and documentation are available | 2 | userspace tools. These programs and documentation are available |
| 3 | at http://bridge.sourceforge.net. The download page is | 3 | at http://www.linux-foundation.org/en/Net:Bridge. The download page is |
| 4 | http://prdownloads.sourceforge.net/bridge. | 4 | http://prdownloads.sourceforge.net/bridge. |
| 5 | 5 | ||
| 6 | If you still have questions, don't hesitate to post to the mailing list | 6 | If you still have questions, don't hesitate to post to the mailing list |
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88 index 543957346469..7cf5685d3645 100644 --- a/Documentation/video4linux/CARDLIST.cx88 +++ b/Documentation/video4linux/CARDLIST.cx88 | |||
| @@ -60,7 +60,7 @@ | |||
| 60 | 59 -> DViCO FusionHDTV 5 PCI nano [18ac:d530] | 60 | 59 -> DViCO FusionHDTV 5 PCI nano [18ac:d530] |
| 61 | 60 -> Pinnacle Hybrid PCTV [12ab:1788] | 61 | 60 -> Pinnacle Hybrid PCTV [12ab:1788] |
| 62 | 61 -> Winfast TV2000 XP Global [107d:6f18] | 62 | 61 -> Winfast TV2000 XP Global [107d:6f18] |
| 63 | 62 -> PowerColor Real Angel 330 [14f1:ea3d] | 63 | 62 -> PowerColor RA330 [14f1:ea3d] |
| 64 | 63 -> Geniatech X8000-MT DVBT [14f1:8852] | 64 | 63 -> Geniatech X8000-MT DVBT [14f1:8852] |
| 65 | 64 -> DViCO FusionHDTV DVB-T PRO [18ac:db30] | 65 | 64 -> DViCO FusionHDTV DVB-T PRO [18ac:db30] |
| 66 | 65 -> DViCO FusionHDTV 7 Gold [18ac:d610] | 66 | 65 -> DViCO FusionHDTV 7 Gold [18ac:d610] |
diff --git a/Documentation/video4linux/cx18.txt b/Documentation/video4linux/cx18.txt index 077d56ec3f3d..6842c262890f 100644 --- a/Documentation/video4linux/cx18.txt +++ b/Documentation/video4linux/cx18.txt | |||
| @@ -1,7 +1,9 @@ | |||
| 1 | Some notes regarding the cx18 driver for the Conexant CX23418 MPEG | 1 | Some notes regarding the cx18 driver for the Conexant CX23418 MPEG |
| 2 | encoder chip: | 2 | encoder chip: |
| 3 | 3 | ||
| 4 | 1) The only hardware currently supported is the Hauppauge HVR-1600. | 4 | 1) The only hardware currently supported is the Hauppauge HVR-1600 |
| 5 | card and the Compro VideoMate H900 (note that this card only | ||
| 6 | supports analog input, it has no digital tuner!). | ||
| 5 | 7 | ||
| 6 | 2) Some people have problems getting the i2c bus to work. Cause unknown. | 8 | 2) Some people have problems getting the i2c bus to work. Cause unknown. |
| 7 | The symptom is that the eeprom cannot be read and the card is | 9 | The symptom is that the eeprom cannot be read and the card is |
diff --git a/Documentation/vm/pagemap.txt b/Documentation/vm/pagemap.txt new file mode 100644 index 000000000000..ce72c0fe6177 --- /dev/null +++ b/Documentation/vm/pagemap.txt | |||
| @@ -0,0 +1,77 @@ | |||
| 1 | pagemap, from the userspace perspective | ||
| 2 | --------------------------------------- | ||
| 3 | |||
| 4 | pagemap is a new (as of 2.6.25) set of interfaces in the kernel that allow | ||
| 5 | userspace programs to examine the page tables and related information by | ||
| 6 | reading files in /proc. | ||
| 7 | |||
| 8 | There are three components to pagemap: | ||
| 9 | |||
| 10 | * /proc/pid/pagemap. This file lets a userspace process find out which | ||
| 11 | physical frame each virtual page is mapped to. It contains one 64-bit | ||
| 12 | value for each virtual page, containing the following data (from | ||
| 13 | fs/proc/task_mmu.c, above pagemap_read): | ||
| 14 | |||
| 15 | * Bits 0-55 page frame number (PFN) if present | ||
| 16 | * Bits 0-4 swap type if swapped | ||
| 17 | * Bits 5-55 swap offset if swapped | ||
| 18 | * Bits 55-60 page shift (page size = 1<<page shift) | ||
| 19 | * Bit 61 reserved for future use | ||
| 20 | * Bit 62 page swapped | ||
| 21 | * Bit 63 page present | ||
| 22 | |||
| 23 | If the page is not present but in swap, then the PFN contains an | ||
| 24 | encoding of the swap file number and the page's offset into the | ||
| 25 | swap. Unmapped pages return a null PFN. This allows determining | ||
| 26 | precisely which pages are mapped (or in swap) and comparing mapped | ||
| 27 | pages between processes. | ||
| 28 | |||
| 29 | Efficient users of this interface will use /proc/pid/maps to | ||
| 30 | determine which areas of memory are actually mapped and llseek to | ||
| 31 | skip over unmapped regions. | ||
| 32 | |||
| 33 | * /proc/kpagecount. This file contains a 64-bit count of the number of | ||
| 34 | times each page is mapped, indexed by PFN. | ||
| 35 | |||
| 36 | * /proc/kpageflags. This file contains a 64-bit set of flags for each | ||
| 37 | page, indexed by PFN. | ||
| 38 | |||
| 39 | The flags are (from fs/proc/proc_misc, above kpageflags_read): | ||
| 40 | |||
| 41 | 0. LOCKED | ||
| 42 | 1. ERROR | ||
| 43 | 2. REFERENCED | ||
| 44 | 3. UPTODATE | ||
| 45 | 4. DIRTY | ||
| 46 | 5. LRU | ||
| 47 | 6. ACTIVE | ||
| 48 | 7. SLAB | ||
| 49 | 8. WRITEBACK | ||
| 50 | 9. RECLAIM | ||
| 51 | 10. BUDDY | ||
| 52 | |||
| 53 | Using pagemap to do something useful: | ||
| 54 | |||
| 55 | The general procedure for using pagemap to find out about a process' memory | ||
| 56 | usage goes like this: | ||
| 57 | |||
| 58 | 1. Read /proc/pid/maps to determine which parts of the memory space are | ||
| 59 | mapped to what. | ||
| 60 | 2. Select the maps you are interested in -- all of them, or a particular | ||
| 61 | library, or the stack or the heap, etc. | ||
| 62 | 3. Open /proc/pid/pagemap and seek to the pages you would like to examine. | ||
| 63 | 4. Read a u64 for each page from pagemap. | ||
| 64 | 5. Open /proc/kpagecount and/or /proc/kpageflags. For each PFN you just | ||
| 65 | read, seek to that entry in the file, and read the data you want. | ||
| 66 | |||
| 67 | For example, to find the "unique set size" (USS), which is the amount of | ||
| 68 | memory that a process is using that is not shared with any other process, | ||
| 69 | you can go through every map in the process, find the PFNs, look those up | ||
| 70 | in kpagecount, and tally up the number of pages that are only referenced | ||
| 71 | once. | ||
| 72 | |||
| 73 | Other notes: | ||
| 74 | |||
| 75 | Reading from any of the files will return -EINVAL if you are not starting | ||
| 76 | the read on an 8-byte boundary (e.g., if you seeked an odd number of bytes | ||
| 77 | into the file), or if the size of the read is not a multiple of 8 bytes. | ||
