diff options
Diffstat (limited to 'Documentation')
30 files changed, 574 insertions, 363 deletions
diff --git a/Documentation/DocBook/tracepoint.tmpl b/Documentation/DocBook/tracepoint.tmpl index b0756d0fd579..8bca1d5cec09 100644 --- a/Documentation/DocBook/tracepoint.tmpl +++ b/Documentation/DocBook/tracepoint.tmpl | |||
@@ -86,4 +86,9 @@ | |||
86 | !Iinclude/trace/events/irq.h | 86 | !Iinclude/trace/events/irq.h |
87 | </chapter> | 87 | </chapter> |
88 | 88 | ||
89 | <chapter id="signal"> | ||
90 | <title>SIGNAL</title> | ||
91 | !Iinclude/trace/events/signal.h | ||
92 | </chapter> | ||
93 | |||
89 | </book> | 94 | </book> |
diff --git a/Documentation/RCU/trace.txt b/Documentation/RCU/trace.txt index 187bbf10c923..8608fd85e921 100644 --- a/Documentation/RCU/trace.txt +++ b/Documentation/RCU/trace.txt | |||
@@ -1,185 +1,10 @@ | |||
1 | CONFIG_RCU_TRACE debugfs Files and Formats | 1 | CONFIG_RCU_TRACE debugfs Files and Formats |
2 | 2 | ||
3 | 3 | ||
4 | The rcupreempt and rcutree implementations of RCU provide debugfs trace | 4 | The rcutree implementation of RCU provides debugfs trace output that |
5 | output that summarizes counters and state. This information is useful for | 5 | summarizes counters and state. This information is useful for debugging |
6 | debugging RCU itself, and can sometimes also help to debug abuses of RCU. | 6 | RCU itself, and can sometimes also help to debug abuses of RCU. |
7 | Note that the rcuclassic implementation of RCU does not provide debugfs | 7 | The following sections describe the debugfs files and formats. |
8 | trace output. | ||
9 | |||
10 | The following sections describe the debugfs files and formats for | ||
11 | preemptable RCU (rcupreempt) and hierarchical RCU (rcutree). | ||
12 | |||
13 | |||
14 | Preemptable RCU debugfs Files and Formats | ||
15 | |||
16 | This implementation of RCU provides three debugfs files under the | ||
17 | top-level directory RCU: rcu/rcuctrs (which displays the per-CPU | ||
18 | counters used by preemptable RCU) rcu/rcugp (which displays grace-period | ||
19 | counters), and rcu/rcustats (which internal counters for debugging RCU). | ||
20 | |||
21 | The output of "cat rcu/rcuctrs" looks as follows: | ||
22 | |||
23 | CPU last cur F M | ||
24 | 0 5 -5 0 0 | ||
25 | 1 -1 0 0 0 | ||
26 | 2 0 1 0 0 | ||
27 | 3 0 1 0 0 | ||
28 | 4 0 1 0 0 | ||
29 | 5 0 1 0 0 | ||
30 | 6 0 2 0 0 | ||
31 | 7 0 -1 0 0 | ||
32 | 8 0 1 0 0 | ||
33 | ggp = 26226, state = waitzero | ||
34 | |||
35 | The per-CPU fields are as follows: | ||
36 | |||
37 | o "CPU" gives the CPU number. Offline CPUs are not displayed. | ||
38 | |||
39 | o "last" gives the value of the counter that is being decremented | ||
40 | for the current grace period phase. In the example above, | ||
41 | the counters sum to 4, indicating that there are still four | ||
42 | RCU read-side critical sections still running that started | ||
43 | before the last counter flip. | ||
44 | |||
45 | o "cur" gives the value of the counter that is currently being | ||
46 | both incremented (by rcu_read_lock()) and decremented (by | ||
47 | rcu_read_unlock()). In the example above, the counters sum to | ||
48 | 1, indicating that there is only one RCU read-side critical section | ||
49 | still running that started after the last counter flip. | ||
50 | |||
51 | o "F" indicates whether RCU is waiting for this CPU to acknowledge | ||
52 | a counter flip. In the above example, RCU is not waiting on any, | ||
53 | which is consistent with the state being "waitzero" rather than | ||
54 | "waitack". | ||
55 | |||
56 | o "M" indicates whether RCU is waiting for this CPU to execute a | ||
57 | memory barrier. In the above example, RCU is not waiting on any, | ||
58 | which is consistent with the state being "waitzero" rather than | ||
59 | "waitmb". | ||
60 | |||
61 | o "ggp" is the global grace-period counter. | ||
62 | |||
63 | o "state" is the RCU state, which can be one of the following: | ||
64 | |||
65 | o "idle": there is no grace period in progress. | ||
66 | |||
67 | o "waitack": RCU just incremented the global grace-period | ||
68 | counter, which has the effect of reversing the roles of | ||
69 | the "last" and "cur" counters above, and is waiting for | ||
70 | all the CPUs to acknowledge the flip. Once the flip has | ||
71 | been acknowledged, CPUs will no longer be incrementing | ||
72 | what are now the "last" counters, so that their sum will | ||
73 | decrease monotonically down to zero. | ||
74 | |||
75 | o "waitzero": RCU is waiting for the sum of the "last" counters | ||
76 | to decrease to zero. | ||
77 | |||
78 | o "waitmb": RCU is waiting for each CPU to execute a memory | ||
79 | barrier, which ensures that instructions from a given CPU's | ||
80 | last RCU read-side critical section cannot be reordered | ||
81 | with instructions following the memory-barrier instruction. | ||
82 | |||
83 | The output of "cat rcu/rcugp" looks as follows: | ||
84 | |||
85 | oldggp=48870 newggp=48873 | ||
86 | |||
87 | Note that reading from this file provokes a synchronize_rcu(). The | ||
88 | "oldggp" value is that of "ggp" from rcu/rcuctrs above, taken before | ||
89 | executing the synchronize_rcu(), and the "newggp" value is also the | ||
90 | "ggp" value, but taken after the synchronize_rcu() command returns. | ||
91 | |||
92 | |||
93 | The output of "cat rcu/rcugp" looks as follows: | ||
94 | |||
95 | na=1337955 nl=40 wa=1337915 wl=44 da=1337871 dl=0 dr=1337871 di=1337871 | ||
96 | 1=50989 e1=6138 i1=49722 ie1=82 g1=49640 a1=315203 ae1=265563 a2=49640 | ||
97 | z1=1401244 ze1=1351605 z2=49639 m1=5661253 me1=5611614 m2=49639 | ||
98 | |||
99 | These are counters tracking internal preemptable-RCU events, however, | ||
100 | some of them may be useful for debugging algorithms using RCU. In | ||
101 | particular, the "nl", "wl", and "dl" values track the number of RCU | ||
102 | callbacks in various states. The fields are as follows: | ||
103 | |||
104 | o "na" is the total number of RCU callbacks that have been enqueued | ||
105 | since boot. | ||
106 | |||
107 | o "nl" is the number of RCU callbacks waiting for the previous | ||
108 | grace period to end so that they can start waiting on the next | ||
109 | grace period. | ||
110 | |||
111 | o "wa" is the total number of RCU callbacks that have started waiting | ||
112 | for a grace period since boot. "na" should be roughly equal to | ||
113 | "nl" plus "wa". | ||
114 | |||
115 | o "wl" is the number of RCU callbacks currently waiting for their | ||
116 | grace period to end. | ||
117 | |||
118 | o "da" is the total number of RCU callbacks whose grace periods | ||
119 | have completed since boot. "wa" should be roughly equal to | ||
120 | "wl" plus "da". | ||
121 | |||
122 | o "dr" is the total number of RCU callbacks that have been removed | ||
123 | from the list of callbacks ready to invoke. "dr" should be roughly | ||
124 | equal to "da". | ||
125 | |||
126 | o "di" is the total number of RCU callbacks that have been invoked | ||
127 | since boot. "di" should be roughly equal to "da", though some | ||
128 | early versions of preemptable RCU had a bug so that only the | ||
129 | last CPU's count of invocations was displayed, rather than the | ||
130 | sum of all CPU's counts. | ||
131 | |||
132 | o "1" is the number of calls to rcu_try_flip(). This should be | ||
133 | roughly equal to the sum of "e1", "i1", "a1", "z1", and "m1" | ||
134 | described below. In other words, the number of times that | ||
135 | the state machine is visited should be equal to the sum of the | ||
136 | number of times that each state is visited plus the number of | ||
137 | times that the state-machine lock acquisition failed. | ||
138 | |||
139 | o "e1" is the number of times that rcu_try_flip() was unable to | ||
140 | acquire the fliplock. | ||
141 | |||
142 | o "i1" is the number of calls to rcu_try_flip_idle(). | ||
143 | |||
144 | o "ie1" is the number of times rcu_try_flip_idle() exited early | ||
145 | due to the calling CPU having no work for RCU. | ||
146 | |||
147 | o "g1" is the number of times that rcu_try_flip_idle() decided | ||
148 | to start a new grace period. "i1" should be roughly equal to | ||
149 | "ie1" plus "g1". | ||
150 | |||
151 | o "a1" is the number of calls to rcu_try_flip_waitack(). | ||
152 | |||
153 | o "ae1" is the number of times that rcu_try_flip_waitack() found | ||
154 | that at least one CPU had not yet acknowledge the new grace period | ||
155 | (AKA "counter flip"). | ||
156 | |||
157 | o "a2" is the number of time rcu_try_flip_waitack() found that | ||
158 | all CPUs had acknowledged. "a1" should be roughly equal to | ||
159 | "ae1" plus "a2". (This particular output was collected on | ||
160 | a 128-CPU machine, hence the smaller-than-usual fraction of | ||
161 | calls to rcu_try_flip_waitack() finding all CPUs having already | ||
162 | acknowledged.) | ||
163 | |||
164 | o "z1" is the number of calls to rcu_try_flip_waitzero(). | ||
165 | |||
166 | o "ze1" is the number of times that rcu_try_flip_waitzero() found | ||
167 | that not all of the old RCU read-side critical sections had | ||
168 | completed. | ||
169 | |||
170 | o "z2" is the number of times that rcu_try_flip_waitzero() finds | ||
171 | the sum of the counters equal to zero, in other words, that | ||
172 | all of the old RCU read-side critical sections had completed. | ||
173 | The value of "z1" should be roughly equal to "ze1" plus | ||
174 | "z2". | ||
175 | |||
176 | o "m1" is the number of calls to rcu_try_flip_waitmb(). | ||
177 | |||
178 | o "me1" is the number of times that rcu_try_flip_waitmb() finds | ||
179 | that at least one CPU has not yet executed a memory barrier. | ||
180 | |||
181 | o "m2" is the number of times that rcu_try_flip_waitmb() finds that | ||
182 | all CPUs have executed a memory barrier. | ||
183 | 8 | ||
184 | 9 | ||
185 | Hierarchical RCU debugfs Files and Formats | 10 | Hierarchical RCU debugfs Files and Formats |
@@ -210,9 +35,10 @@ rcu_bh: | |||
210 | 6 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=859/1 dn=0 df=15 of=0 ri=0 ql=0 b=10 | 35 | 6 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=859/1 dn=0 df=15 of=0 ri=0 ql=0 b=10 |
211 | 7 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=3761/1 dn=0 df=15 of=0 ri=0 ql=0 b=10 | 36 | 7 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=3761/1 dn=0 df=15 of=0 ri=0 ql=0 b=10 |
212 | 37 | ||
213 | The first section lists the rcu_data structures for rcu, the second for | 38 | The first section lists the rcu_data structures for rcu_sched, the second |
214 | rcu_bh. Each section has one line per CPU, or eight for this 8-CPU system. | 39 | for rcu_bh. Note that CONFIG_TREE_PREEMPT_RCU kernels will have an |
215 | The fields are as follows: | 40 | additional section for rcu_preempt. Each section has one line per CPU, |
41 | or eight for this 8-CPU system. The fields are as follows: | ||
216 | 42 | ||
217 | o The number at the beginning of each line is the CPU number. | 43 | o The number at the beginning of each line is the CPU number. |
218 | CPUs numbers followed by an exclamation mark are offline, | 44 | CPUs numbers followed by an exclamation mark are offline, |
@@ -223,9 +49,9 @@ o The number at the beginning of each line is the CPU number. | |||
223 | 49 | ||
224 | o "c" is the count of grace periods that this CPU believes have | 50 | o "c" is the count of grace periods that this CPU believes have |
225 | completed. CPUs in dynticks idle mode may lag quite a ways | 51 | completed. CPUs in dynticks idle mode may lag quite a ways |
226 | behind, for example, CPU 4 under "rcu" above, which has slept | 52 | behind, for example, CPU 4 under "rcu_sched" above, which has |
227 | through the past 25 RCU grace periods. It is not unusual to | 53 | slept through the past 25 RCU grace periods. It is not unusual |
228 | see CPUs lagging by thousands of grace periods. | 54 | to see CPUs lagging by thousands of grace periods. |
229 | 55 | ||
230 | o "g" is the count of grace periods that this CPU believes have | 56 | o "g" is the count of grace periods that this CPU believes have |
231 | started. Again, CPUs in dynticks idle mode may lag behind. | 57 | started. Again, CPUs in dynticks idle mode may lag behind. |
@@ -308,8 +134,10 @@ The output of "cat rcu/rcugp" looks as follows: | |||
308 | rcu_sched: completed=33062 gpnum=33063 | 134 | rcu_sched: completed=33062 gpnum=33063 |
309 | rcu_bh: completed=464 gpnum=464 | 135 | rcu_bh: completed=464 gpnum=464 |
310 | 136 | ||
311 | Again, this output is for both "rcu" and "rcu_bh". The fields are | 137 | Again, this output is for both "rcu_sched" and "rcu_bh". Note that |
312 | taken from the rcu_state structure, and are as follows: | 138 | kernels built with CONFIG_TREE_PREEMPT_RCU will have an additional |
139 | "rcu_preempt" line. The fields are taken from the rcu_state structure, | ||
140 | and are as follows: | ||
313 | 141 | ||
314 | o "completed" is the number of grace periods that have completed. | 142 | o "completed" is the number of grace periods that have completed. |
315 | It is comparable to the "c" field from rcu/rcudata in that a | 143 | It is comparable to the "c" field from rcu/rcudata in that a |
@@ -324,23 +152,24 @@ o "gpnum" is the number of grace periods that have started. It is | |||
324 | If these two fields are equal (as they are for "rcu_bh" above), | 152 | If these two fields are equal (as they are for "rcu_bh" above), |
325 | then there is no grace period in progress, in other words, RCU | 153 | then there is no grace period in progress, in other words, RCU |
326 | is idle. On the other hand, if the two fields differ (as they | 154 | is idle. On the other hand, if the two fields differ (as they |
327 | do for "rcu" above), then an RCU grace period is in progress. | 155 | do for "rcu_sched" above), then an RCU grace period is in progress. |
328 | 156 | ||
329 | 157 | ||
330 | The output of "cat rcu/rcuhier" looks as follows, with very long lines: | 158 | The output of "cat rcu/rcuhier" looks as follows, with very long lines: |
331 | 159 | ||
332 | c=6902 g=6903 s=2 jfq=3 j=72c7 nfqs=13142/nfqsng=0(13142) fqlh=6 | 160 | c=6902 g=6903 s=2 jfq=3 j=72c7 nfqs=13142/nfqsng=0(13142) fqlh=6 oqlen=0 |
333 | 1/1 0:127 ^0 | 161 | 1/1 .>. 0:127 ^0 |
334 | 3/3 0:35 ^0 0/0 36:71 ^1 0/0 72:107 ^2 0/0 108:127 ^3 | 162 | 3/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3 |
335 | 3/3f 0:5 ^0 2/3 6:11 ^1 0/0 12:17 ^2 0/0 18:23 ^3 0/0 24:29 ^4 0/0 30:35 ^5 0/0 36:41 ^0 0/0 42:47 ^1 0/0 48:53 ^2 0/0 54:59 ^3 0/0 60:65 ^4 0/0 66:71 ^5 0/0 72:77 ^0 0/0 78:83 ^1 0/0 84:89 ^2 0/0 90:95 ^3 0/0 96:101 ^4 0/0 102:107 ^5 0/0 108:113 ^0 0/0 114:119 ^1 0/0 120:125 ^2 0/0 126:127 ^3 | 163 | 3/3f .>. 0:5 ^0 2/3 .>. 6:11 ^1 0/0 .>. 12:17 ^2 0/0 .>. 18:23 ^3 0/0 .>. 24:29 ^4 0/0 .>. 30:35 ^5 0/0 .>. 36:41 ^0 0/0 .>. 42:47 ^1 0/0 .>. 48:53 ^2 0/0 .>. 54:59 ^3 0/0 .>. 60:65 ^4 0/0 .>. 66:71 ^5 0/0 .>. 72:77 ^0 0/0 .>. 78:83 ^1 0/0 .>. 84:89 ^2 0/0 .>. 90:95 ^3 0/0 .>. 96:101 ^4 0/0 .>. 102:107 ^5 0/0 .>. 108:113 ^0 0/0 .>. 114:119 ^1 0/0 .>. 120:125 ^2 0/0 .>. 126:127 ^3 |
336 | rcu_bh: | 164 | rcu_bh: |
337 | c=-226 g=-226 s=1 jfq=-5701 j=72c7 nfqs=88/nfqsng=0(88) fqlh=0 | 165 | c=-226 g=-226 s=1 jfq=-5701 j=72c7 nfqs=88/nfqsng=0(88) fqlh=0 oqlen=0 |
338 | 0/1 0:127 ^0 | 166 | 0/1 .>. 0:127 ^0 |
339 | 0/3 0:35 ^0 0/0 36:71 ^1 0/0 72:107 ^2 0/0 108:127 ^3 | 167 | 0/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3 |
340 | 0/3f 0:5 ^0 0/3 6:11 ^1 0/0 12:17 ^2 0/0 18:23 ^3 0/0 24:29 ^4 0/0 30:35 ^5 0/0 36:41 ^0 0/0 42:47 ^1 0/0 48:53 ^2 0/0 54:59 ^3 0/0 60:65 ^4 0/0 66:71 ^5 0/0 72:77 ^0 0/0 78:83 ^1 0/0 84:89 ^2 0/0 90:95 ^3 0/0 96:101 ^4 0/0 102:107 ^5 0/0 108:113 ^0 0/0 114:119 ^1 0/0 120:125 ^2 0/0 126:127 ^3 | 168 | 0/3f .>. 0:5 ^0 0/3 .>. 6:11 ^1 0/0 .>. 12:17 ^2 0/0 .>. 18:23 ^3 0/0 .>. 24:29 ^4 0/0 .>. 30:35 ^5 0/0 .>. 36:41 ^0 0/0 .>. 42:47 ^1 0/0 .>. 48:53 ^2 0/0 .>. 54:59 ^3 0/0 .>. 60:65 ^4 0/0 .>. 66:71 ^5 0/0 .>. 72:77 ^0 0/0 .>. 78:83 ^1 0/0 .>. 84:89 ^2 0/0 .>. 90:95 ^3 0/0 .>. 96:101 ^4 0/0 .>. 102:107 ^5 0/0 .>. 108:113 ^0 0/0 .>. 114:119 ^1 0/0 .>. 120:125 ^2 0/0 .>. 126:127 ^3 |
341 | 169 | ||
342 | This is once again split into "rcu" and "rcu_bh" portions. The fields are | 170 | This is once again split into "rcu_sched" and "rcu_bh" portions, |
343 | as follows: | 171 | and CONFIG_TREE_PREEMPT_RCU kernels will again have an additional |
172 | "rcu_preempt" section. The fields are as follows: | ||
344 | 173 | ||
345 | o "c" is exactly the same as "completed" under rcu/rcugp. | 174 | o "c" is exactly the same as "completed" under rcu/rcugp. |
346 | 175 | ||
@@ -372,6 +201,11 @@ o "fqlh" is the number of calls to force_quiescent_state() that | |||
372 | exited immediately (without even being counted in nfqs above) | 201 | exited immediately (without even being counted in nfqs above) |
373 | due to contention on ->fqslock. | 202 | due to contention on ->fqslock. |
374 | 203 | ||
204 | o "oqlen" is the number of callbacks on the "orphan" callback | ||
205 | list. RCU callbacks are placed on this list by CPUs going | ||
206 | offline, and are "adopted" either by the CPU helping the outgoing | ||
207 | CPU or by the next rcu_barrier*() call, whichever comes first. | ||
208 | |||
375 | o Each element of the form "1/1 0:127 ^0" represents one struct | 209 | o Each element of the form "1/1 0:127 ^0" represents one struct |
376 | rcu_node. Each line represents one level of the hierarchy, from | 210 | rcu_node. Each line represents one level of the hierarchy, from |
377 | root to leaves. It is best to think of the rcu_data structures | 211 | root to leaves. It is best to think of the rcu_data structures |
@@ -379,7 +213,7 @@ o Each element of the form "1/1 0:127 ^0" represents one struct | |||
379 | might be either one, two, or three levels of rcu_node structures, | 213 | might be either one, two, or three levels of rcu_node structures, |
380 | depending on the relationship between CONFIG_RCU_FANOUT and | 214 | depending on the relationship between CONFIG_RCU_FANOUT and |
381 | CONFIG_NR_CPUS. | 215 | CONFIG_NR_CPUS. |
382 | 216 | ||
383 | o The numbers separated by the "/" are the qsmask followed | 217 | o The numbers separated by the "/" are the qsmask followed |
384 | by the qsmaskinit. The qsmask will have one bit | 218 | by the qsmaskinit. The qsmask will have one bit |
385 | set for each entity in the next lower level that | 219 | set for each entity in the next lower level that |
@@ -389,10 +223,19 @@ o Each element of the form "1/1 0:127 ^0" represents one struct | |||
389 | The value of qsmaskinit is assigned to that of qsmask | 223 | The value of qsmaskinit is assigned to that of qsmask |
390 | at the beginning of each grace period. | 224 | at the beginning of each grace period. |
391 | 225 | ||
392 | For example, for "rcu", the qsmask of the first entry | 226 | For example, for "rcu_sched", the qsmask of the first |
393 | of the lowest level is 0x14, meaning that we are still | 227 | entry of the lowest level is 0x14, meaning that we |
394 | waiting for CPUs 2 and 4 to check in for the current | 228 | are still waiting for CPUs 2 and 4 to check in for the |
395 | grace period. | 229 | current grace period. |
230 | |||
231 | o The characters separated by the ">" indicate the state | ||
232 | of the blocked-tasks lists. A "T" preceding the ">" | ||
233 | indicates that at least one task blocked in an RCU | ||
234 | read-side critical section blocks the current grace | ||
235 | period, while a "." preceding the ">" indicates otherwise. | ||
236 | The character following the ">" indicates similarly for | ||
237 | the next grace period. A "T" should appear in this | ||
238 | field only for rcu-preempt. | ||
396 | 239 | ||
397 | o The numbers separated by the ":" are the range of CPUs | 240 | o The numbers separated by the ":" are the range of CPUs |
398 | served by this struct rcu_node. This can be helpful | 241 | served by this struct rcu_node. This can be helpful |
@@ -431,8 +274,9 @@ rcu_bh: | |||
431 | 6 np=120834 qsp=9902 cbr=0 cng=0 gpc=6 gps=3 nf=2 nn=110921 | 274 | 6 np=120834 qsp=9902 cbr=0 cng=0 gpc=6 gps=3 nf=2 nn=110921 |
432 | 7 np=144888 qsp=26336 cbr=0 cng=0 gpc=8 gps=2 nf=0 nn=118542 | 275 | 7 np=144888 qsp=26336 cbr=0 cng=0 gpc=8 gps=2 nf=0 nn=118542 |
433 | 276 | ||
434 | As always, this is once again split into "rcu" and "rcu_bh" portions. | 277 | As always, this is once again split into "rcu_sched" and "rcu_bh" |
435 | The fields are as follows: | 278 | portions, with CONFIG_TREE_PREEMPT_RCU kernels having an additional |
279 | "rcu_preempt" section. The fields are as follows: | ||
436 | 280 | ||
437 | o "np" is the number of times that __rcu_pending() has been invoked | 281 | o "np" is the number of times that __rcu_pending() has been invoked |
438 | for the corresponding flavor of RCU. | 282 | for the corresponding flavor of RCU. |
diff --git a/Documentation/RCU/whatisRCU.txt b/Documentation/RCU/whatisRCU.txt index e41a7fecf0d3..d542ca243b80 100644 --- a/Documentation/RCU/whatisRCU.txt +++ b/Documentation/RCU/whatisRCU.txt | |||
@@ -830,7 +830,7 @@ sched: Critical sections Grace period Barrier | |||
830 | SRCU: Critical sections Grace period Barrier | 830 | SRCU: Critical sections Grace period Barrier |
831 | 831 | ||
832 | srcu_read_lock synchronize_srcu N/A | 832 | srcu_read_lock synchronize_srcu N/A |
833 | srcu_read_unlock | 833 | srcu_read_unlock synchronize_srcu_expedited |
834 | 834 | ||
835 | SRCU: Initialization/cleanup | 835 | SRCU: Initialization/cleanup |
836 | init_srcu_struct | 836 | init_srcu_struct |
diff --git a/Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt b/Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt index 26422f0f9080..b87292e05f2f 100644 --- a/Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt +++ b/Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt | |||
@@ -55,4 +55,4 @@ Maintainers | |||
55 | This board is maintained by Simtec Electronics. | 55 | This board is maintained by Simtec Electronics. |
56 | 56 | ||
57 | 57 | ||
58 | (c) 2004 Ben Dooks, Simtec Electronics | 58 | Copyright 2004 Ben Dooks, Simtec Electronics |
diff --git a/Documentation/arm/Samsung-S3C24XX/GPIO.txt b/Documentation/arm/Samsung-S3C24XX/GPIO.txt index 948c8718d967..2af2cf39915f 100644 --- a/Documentation/arm/Samsung-S3C24XX/GPIO.txt +++ b/Documentation/arm/Samsung-S3C24XX/GPIO.txt | |||
@@ -134,4 +134,4 @@ Authour | |||
134 | 134 | ||
135 | 135 | ||
136 | Ben Dooks, 03 October 2004 | 136 | Ben Dooks, 03 October 2004 |
137 | (c) 2004 Ben Dooks, Simtec Electronics | 137 | Copyright 2004 Ben Dooks, Simtec Electronics |
diff --git a/Documentation/arm/Samsung-S3C24XX/Overview.txt b/Documentation/arm/Samsung-S3C24XX/Overview.txt index cff6227b4484..081892df4fda 100644 --- a/Documentation/arm/Samsung-S3C24XX/Overview.txt +++ b/Documentation/arm/Samsung-S3C24XX/Overview.txt | |||
@@ -299,4 +299,4 @@ Port Contributors | |||
299 | Document Author | 299 | Document Author |
300 | --------------- | 300 | --------------- |
301 | 301 | ||
302 | Ben Dooks, (c) 2004-2005,2006 Simtec Electronics | 302 | Ben Dooks, Copyright 2004-2006 Simtec Electronics |
diff --git a/Documentation/arm/Samsung-S3C24XX/S3C2412.txt b/Documentation/arm/Samsung-S3C24XX/S3C2412.txt index 295d971a15ed..f057876b920b 100644 --- a/Documentation/arm/Samsung-S3C24XX/S3C2412.txt +++ b/Documentation/arm/Samsung-S3C24XX/S3C2412.txt | |||
@@ -117,4 +117,4 @@ ATA | |||
117 | Document Author | 117 | Document Author |
118 | --------------- | 118 | --------------- |
119 | 119 | ||
120 | Ben Dooks, (c) 2006 Simtec Electronics | 120 | Ben Dooks, Copyright 2006 Simtec Electronics |
diff --git a/Documentation/arm/Samsung-S3C24XX/S3C2413.txt b/Documentation/arm/Samsung-S3C24XX/S3C2413.txt index ab2a88858f12..909bdc7dd7b5 100644 --- a/Documentation/arm/Samsung-S3C24XX/S3C2413.txt +++ b/Documentation/arm/Samsung-S3C24XX/S3C2413.txt | |||
@@ -18,4 +18,4 @@ Camera Interface | |||
18 | Document Author | 18 | Document Author |
19 | --------------- | 19 | --------------- |
20 | 20 | ||
21 | Ben Dooks, (c) 2006 Simtec Electronics | 21 | Ben Dooks, Copyright 2006 Simtec Electronics |
diff --git a/Documentation/arm/Samsung-S3C24XX/Suspend.txt b/Documentation/arm/Samsung-S3C24XX/Suspend.txt index a30fe510572b..7edd0e2e6c5b 100644 --- a/Documentation/arm/Samsung-S3C24XX/Suspend.txt +++ b/Documentation/arm/Samsung-S3C24XX/Suspend.txt | |||
@@ -133,5 +133,5 @@ Configuration | |||
133 | Document Author | 133 | Document Author |
134 | --------------- | 134 | --------------- |
135 | 135 | ||
136 | Ben Dooks, (c) 2004 Simtec Electronics | 136 | Ben Dooks, Copyright 2004 Simtec Electronics |
137 | 137 | ||
diff --git a/Documentation/arm/Samsung-S3C24XX/USB-Host.txt b/Documentation/arm/Samsung-S3C24XX/USB-Host.txt index 67671eba4231..f82b1faefad5 100644 --- a/Documentation/arm/Samsung-S3C24XX/USB-Host.txt +++ b/Documentation/arm/Samsung-S3C24XX/USB-Host.txt | |||
@@ -90,4 +90,4 @@ Platform Data | |||
90 | Document Author | 90 | Document Author |
91 | --------------- | 91 | --------------- |
92 | 92 | ||
93 | Ben Dooks, (c) 2005 Simtec Electronics | 93 | Ben Dooks, Copyright 2005 Simtec Electronics |
diff --git a/Documentation/dontdiff b/Documentation/dontdiff index e1efc400bed6..e151b2a36267 100644 --- a/Documentation/dontdiff +++ b/Documentation/dontdiff | |||
@@ -65,6 +65,7 @@ aicdb.h* | |||
65 | asm-offsets.h | 65 | asm-offsets.h |
66 | asm_offsets.h | 66 | asm_offsets.h |
67 | autoconf.h* | 67 | autoconf.h* |
68 | av_permissions.h | ||
68 | bbootsect | 69 | bbootsect |
69 | bin2c | 70 | bin2c |
70 | binkernel.spec | 71 | binkernel.spec |
@@ -95,12 +96,14 @@ docproc | |||
95 | elf2ecoff | 96 | elf2ecoff |
96 | elfconfig.h* | 97 | elfconfig.h* |
97 | fixdep | 98 | fixdep |
99 | flask.h | ||
98 | fore200e_mkfirm | 100 | fore200e_mkfirm |
99 | fore200e_pca_fw.c* | 101 | fore200e_pca_fw.c* |
100 | gconf | 102 | gconf |
101 | gen-devlist | 103 | gen-devlist |
102 | gen_crc32table | 104 | gen_crc32table |
103 | gen_init_cpio | 105 | gen_init_cpio |
106 | genheaders | ||
104 | genksyms | 107 | genksyms |
105 | *_gray256.c | 108 | *_gray256.c |
106 | ihex2fw | 109 | ihex2fw |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index bc693fffabe0..591e94448e63 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -6,6 +6,21 @@ be removed from this file. | |||
6 | 6 | ||
7 | --------------------------- | 7 | --------------------------- |
8 | 8 | ||
9 | What: USER_SCHED | ||
10 | When: 2.6.34 | ||
11 | |||
12 | Why: USER_SCHED was implemented as a proof of concept for group scheduling. | ||
13 | The effect of USER_SCHED can already be achieved from userspace with | ||
14 | the help of libcgroup. The removal of USER_SCHED will also simplify | ||
15 | the scheduler code with the removal of one major ifdef. There are also | ||
16 | issues USER_SCHED has with USER_NS. A decision was taken not to fix | ||
17 | those and instead remove USER_SCHED. Also new group scheduling | ||
18 | features will not be implemented for USER_SCHED. | ||
19 | |||
20 | Who: Dhaval Giani <dhaval@linux.vnet.ibm.com> | ||
21 | |||
22 | --------------------------- | ||
23 | |||
9 | What: PRISM54 | 24 | What: PRISM54 |
10 | When: 2.6.34 | 25 | When: 2.6.34 |
11 | 26 | ||
@@ -302,18 +317,6 @@ Who: ocfs2-devel@oss.oracle.com | |||
302 | 317 | ||
303 | --------------------------- | 318 | --------------------------- |
304 | 319 | ||
305 | What: SCTP_GET_PEER_ADDRS_NUM_OLD, SCTP_GET_PEER_ADDRS_OLD, | ||
306 | SCTP_GET_LOCAL_ADDRS_NUM_OLD, SCTP_GET_LOCAL_ADDRS_OLD | ||
307 | When: June 2009 | ||
308 | Why: A newer version of the options have been introduced in 2005 that | ||
309 | removes the limitions of the old API. The sctp library has been | ||
310 | converted to use these new options at the same time. Any user | ||
311 | space app that directly uses the old options should convert to using | ||
312 | the new options. | ||
313 | Who: Vlad Yasevich <vladislav.yasevich@hp.com> | ||
314 | |||
315 | --------------------------- | ||
316 | |||
317 | What: Ability for non root users to shm_get hugetlb pages based on mlock | 320 | What: Ability for non root users to shm_get hugetlb pages based on mlock |
318 | resource limits | 321 | resource limits |
319 | When: 2.6.31 | 322 | When: 2.6.31 |
@@ -404,15 +407,6 @@ Who: Alex Chiang <achiang@hp.com> | |||
404 | 407 | ||
405 | --------------------------- | 408 | --------------------------- |
406 | 409 | ||
407 | What: i2c-voodoo3 driver | ||
408 | When: October 2009 | ||
409 | Why: Superseded by tdfxfb. I2C/DDC support used to live in a separate | ||
410 | driver but this caused driver conflicts. | ||
411 | Who: Jean Delvare <khali@linux-fr.org> | ||
412 | Krzysztof Helt <krzysztof.h1@wp.pl> | ||
413 | |||
414 | --------------------------- | ||
415 | |||
416 | What: CONFIG_RFKILL_INPUT | 410 | What: CONFIG_RFKILL_INPUT |
417 | When: 2.6.33 | 411 | When: 2.6.33 |
418 | Why: Should be implemented in userspace, policy daemon. | 412 | Why: Should be implemented in userspace, policy daemon. |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 2c48f945546b..4af0018533f2 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -1072,7 +1072,8 @@ second). The meanings of the columns are as follows, from left to right: | |||
1072 | - irq: servicing interrupts | 1072 | - irq: servicing interrupts |
1073 | - softirq: servicing softirqs | 1073 | - softirq: servicing softirqs |
1074 | - steal: involuntary wait | 1074 | - steal: involuntary wait |
1075 | - guest: running a guest | 1075 | - guest: running a normal guest |
1076 | - guest_nice: running a niced guest | ||
1076 | 1077 | ||
1077 | The "intr" line gives counts of interrupts serviced since boot time, for each | 1078 | The "intr" line gives counts of interrupts serviced since boot time, for each |
1078 | of the possible system interrupts. The first column is the total of all | 1079 | of the possible system interrupts. The first column is the total of all |
diff --git a/Documentation/i2c/busses/i2c-voodoo3 b/Documentation/i2c/busses/i2c-voodoo3 deleted file mode 100644 index 62d90a454d39..000000000000 --- a/Documentation/i2c/busses/i2c-voodoo3 +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | Kernel driver i2c-voodoo3 | ||
2 | |||
3 | Supported adapters: | ||
4 | * 3dfx Voodoo3 based cards | ||
5 | * Voodoo Banshee based cards | ||
6 | |||
7 | Authors: | ||
8 | Frodo Looijaard <frodol@dds.nl>, | ||
9 | Philip Edelbrock <phil@netroedge.com>, | ||
10 | Ralph Metzler <rjkm@thp.uni-koeln.de>, | ||
11 | Mark D. Studebaker <mdsxyz123@yahoo.com> | ||
12 | |||
13 | Main contact: Philip Edelbrock <phil@netroedge.com> | ||
14 | |||
15 | The code is based upon Ralph's test code (he did the hard stuff ;') | ||
16 | |||
17 | Description | ||
18 | ----------- | ||
19 | |||
20 | The 3dfx Voodoo3 chip contains two I2C interfaces (aka a I2C 'master' or | ||
21 | 'host'). | ||
22 | |||
23 | The first interface is used for DDC (Data Display Channel) which is a | ||
24 | serial channel through the VGA monitor connector to a DDC-compliant | ||
25 | monitor. This interface is defined by the Video Electronics Standards | ||
26 | Association (VESA). The standards are available for purchase at | ||
27 | http://www.vesa.org . | ||
28 | |||
29 | The second interface is a general-purpose I2C bus. The intent by 3dfx was | ||
30 | to allow manufacturers to add extra chips to the video card such as a | ||
31 | TV-out chip such as the BT869 or possibly even I2C based temperature | ||
32 | sensors like the ADM1021 or LM75. | ||
33 | |||
34 | Stability | ||
35 | --------- | ||
36 | |||
37 | Seems to be stable on the test machine, but needs more testing on other | ||
38 | machines. Simultaneous accesses of the DDC and I2C busses may cause errors. | ||
39 | |||
40 | Supported Devices | ||
41 | ----------------- | ||
42 | |||
43 | Specifically, this driver was written and tested on the '3dfx Voodoo3 AGP | ||
44 | 3000' which has a tv-out feature (s-video or composite). According to the | ||
45 | docs and discussions, this code should work for any Voodoo3 based cards as | ||
46 | well as Voodoo Banshee based cards. The DDC interface has been tested on a | ||
47 | Voodoo Banshee card. | ||
48 | |||
49 | Issues | ||
50 | ------ | ||
51 | |||
52 | Probably many, but it seems to work OK on my system. :') | ||
53 | |||
54 | |||
55 | External Device Connection | ||
56 | -------------------------- | ||
57 | |||
58 | The digital video input jumpers give availability to the I2C bus. | ||
59 | Specifically, pins 13 and 25 (bottom row middle, and bottom right-end) are | ||
60 | the I2C clock and I2C data lines, respectively. +5V and GND are probably | ||
61 | also easily available making the addition of extra I2C/SMBus devices easy | ||
62 | to implement. | ||
diff --git a/Documentation/i2c/i2c-stub b/Documentation/i2c/i2c-stub index 0d8be1c20c16..fa4b669c166b 100644 --- a/Documentation/i2c/i2c-stub +++ b/Documentation/i2c/i2c-stub | |||
@@ -2,9 +2,9 @@ MODULE: i2c-stub | |||
2 | 2 | ||
3 | DESCRIPTION: | 3 | DESCRIPTION: |
4 | 4 | ||
5 | This module is a very simple fake I2C/SMBus driver. It implements four | 5 | This module is a very simple fake I2C/SMBus driver. It implements five |
6 | types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, and | 6 | types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, (r/w) |
7 | (r/w) word data. | 7 | word data, and (r/w) I2C block data. |
8 | 8 | ||
9 | You need to provide chip addresses as a module parameter when loading this | 9 | You need to provide chip addresses as a module parameter when loading this |
10 | driver, which will then only react to SMBus commands to these addresses. | 10 | driver, which will then only react to SMBus commands to these addresses. |
@@ -21,8 +21,8 @@ EEPROMs, among others. | |||
21 | 21 | ||
22 | The typical use-case is like this: | 22 | The typical use-case is like this: |
23 | 1. load this module | 23 | 1. load this module |
24 | 2. use i2cset (from lm_sensors project) to pre-load some data | 24 | 2. use i2cset (from the i2c-tools project) to pre-load some data |
25 | 3. load the target sensors chip driver module | 25 | 3. load the target chip driver module |
26 | 4. observe its behavior in the kernel log | 26 | 4. observe its behavior in the kernel log |
27 | 27 | ||
28 | There's a script named i2c-stub-from-dump in the i2c-tools package which | 28 | There's a script named i2c-stub-from-dump in the i2c-tools package which |
@@ -33,6 +33,12 @@ PARAMETERS: | |||
33 | int chip_addr[10]: | 33 | int chip_addr[10]: |
34 | The SMBus addresses to emulate chips at. | 34 | The SMBus addresses to emulate chips at. |
35 | 35 | ||
36 | unsigned long functionality: | ||
37 | Functionality override, to disable some commands. See I2C_FUNC_* | ||
38 | constants in <linux/i2c.h> for the suitable values. For example, | ||
39 | value 0x1f0000 would only enable the quick, byte and byte data | ||
40 | commands. | ||
41 | |||
36 | CAVEATS: | 42 | CAVEATS: |
37 | 43 | ||
38 | If your target driver polls some byte or word waiting for it to change, the | 44 | If your target driver polls some byte or word waiting for it to change, the |
diff --git a/Documentation/i2c/old-module-parameters b/Documentation/i2c/old-module-parameters new file mode 100644 index 000000000000..8e2b629d533c --- /dev/null +++ b/Documentation/i2c/old-module-parameters | |||
@@ -0,0 +1,44 @@ | |||
1 | I2C device driver binding control from user-space | ||
2 | ================================================= | ||
3 | |||
4 | Up to kernel 2.6.32, many i2c drivers used helper macros provided by | ||
5 | <linux/i2c.h> which created standard module parameters to let the user | ||
6 | control how the driver would probe i2c buses and attach to devices. These | ||
7 | parameters were known as "probe" (to let the driver probe for an extra | ||
8 | address), "force" (to forcibly attach the driver to a given device) and | ||
9 | "ignore" (to prevent a driver from probing a given address). | ||
10 | |||
11 | With the conversion of the i2c subsystem to the standard device driver | ||
12 | binding model, it became clear that these per-module parameters were no | ||
13 | longer needed, and that a centralized implementation was possible. The new, | ||
14 | sysfs-based interface is described in the documentation file | ||
15 | "instantiating-devices", section "Method 4: Instantiate from user-space". | ||
16 | |||
17 | Below is a mapping from the old module parameters to the new interface. | ||
18 | |||
19 | Attaching a driver to an I2C device | ||
20 | ----------------------------------- | ||
21 | |||
22 | Old method (module parameters): | ||
23 | # modprobe <driver> probe=1,0x2d | ||
24 | # modprobe <driver> force=1,0x2d | ||
25 | # modprobe <driver> force_<device>=1,0x2d | ||
26 | |||
27 | New method (sysfs interface): | ||
28 | # echo <device> 0x2d > /sys/bus/i2c/devices/i2c-1/new_device | ||
29 | |||
30 | Preventing a driver from attaching to an I2C device | ||
31 | --------------------------------------------------- | ||
32 | |||
33 | Old method (module parameters): | ||
34 | # modprobe <driver> ignore=1,0x2f | ||
35 | |||
36 | New method (sysfs interface): | ||
37 | # echo dummy 0x2f > /sys/bus/i2c/devices/i2c-1/new_device | ||
38 | # modprobe <driver> | ||
39 | |||
40 | Of course, it is important to instantiate the "dummy" device before loading | ||
41 | the driver. The dummy device will be handled by i2c-core itself, preventing | ||
42 | other drivers from binding to it later on. If there is a real device at the | ||
43 | problematic address, and you want another driver to bind to it, then simply | ||
44 | pass the name of the device in question instead of "dummy". | ||
diff --git a/Documentation/isdn/README.gigaset b/Documentation/isdn/README.gigaset index f9963103ae3d..0fc9831d7ecb 100644 --- a/Documentation/isdn/README.gigaset +++ b/Documentation/isdn/README.gigaset | |||
@@ -5,7 +5,7 @@ GigaSet 307x Device Driver | |||
5 | ------------ | 5 | ------------ |
6 | 1.1. Hardware | 6 | 1.1. Hardware |
7 | -------- | 7 | -------- |
8 | This release supports the connection of the Gigaset 307x/417x family of | 8 | This driver supports the connection of the Gigaset 307x/417x family of |
9 | ISDN DECT bases via Gigaset M101 Data, Gigaset M105 Data or direct USB | 9 | ISDN DECT bases via Gigaset M101 Data, Gigaset M105 Data or direct USB |
10 | connection. The following devices are reported to be compatible: | 10 | connection. The following devices are reported to be compatible: |
11 | 11 | ||
@@ -33,7 +33,7 @@ GigaSet 307x Device Driver | |||
33 | http://gigaset307x.sourceforge.net/ | 33 | http://gigaset307x.sourceforge.net/ |
34 | 34 | ||
35 | We had also reports from users of Gigaset M105 who could use the drivers | 35 | We had also reports from users of Gigaset M105 who could use the drivers |
36 | with SX 100 and CX 100 ISDN bases (only in unimodem mode, see section 2.4.) | 36 | with SX 100 and CX 100 ISDN bases (only in unimodem mode, see section 2.5.) |
37 | If you have another device that works with our driver, please let us know. | 37 | If you have another device that works with our driver, please let us know. |
38 | 38 | ||
39 | Chances of getting an USB device to work are good if the output of | 39 | Chances of getting an USB device to work are good if the output of |
@@ -49,7 +49,7 @@ GigaSet 307x Device Driver | |||
49 | -------- | 49 | -------- |
50 | The driver works with ISDN4linux and so can be used with any software | 50 | The driver works with ISDN4linux and so can be used with any software |
51 | which is able to use ISDN4linux for ISDN connections (voice or data). | 51 | which is able to use ISDN4linux for ISDN connections (voice or data). |
52 | CAPI4Linux support is planned but not yet available. | 52 | Experimental Kernel CAPI support is available as a compilation option. |
53 | 53 | ||
54 | There are some user space tools available at | 54 | There are some user space tools available at |
55 | http://sourceforge.net/projects/gigaset307x/ | 55 | http://sourceforge.net/projects/gigaset307x/ |
@@ -102,20 +102,28 @@ GigaSet 307x Device Driver | |||
102 | 2.3. ISDN4linux | 102 | 2.3. ISDN4linux |
103 | ---------- | 103 | ---------- |
104 | This is the "normal" mode of operation. After loading the module you can | 104 | This is the "normal" mode of operation. After loading the module you can |
105 | set up the ISDN system just as you'd do with any ISDN card. | 105 | set up the ISDN system just as you'd do with any ISDN card supported by |
106 | Your distribution should provide some configuration utility. | 106 | the ISDN4Linux subsystem. Most distributions provide some configuration |
107 | If not, you can use some HOWTOs like | 107 | utility. If not, you can use some HOWTOs like |
108 | http://www.linuxhaven.de/dlhp/HOWTO/DE-ISDN-HOWTO-5.html | 108 | http://www.linuxhaven.de/dlhp/HOWTO/DE-ISDN-HOWTO-5.html |
109 | If this doesn't work, because you have some recent device like SX100 where | 109 | If this doesn't work, because you have some device like SX100 where |
110 | debug output (see section 3.2.) shows something like this when dialing | 110 | debug output (see section 3.2.) shows something like this when dialing |
111 | CMD Received: ERROR | 111 | CMD Received: ERROR |
112 | Available Params: 0 | 112 | Available Params: 0 |
113 | Connection State: 0, Response: -1 | 113 | Connection State: 0, Response: -1 |
114 | gigaset_process_response: resp_code -1 in ConState 0 ! | 114 | gigaset_process_response: resp_code -1 in ConState 0 ! |
115 | Timeout occurred | 115 | Timeout occurred |
116 | you might need to use unimodem mode: | 116 | you might need to use unimodem mode. (see section 2.5.) |
117 | 117 | ||
118 | 2.4. Unimodem mode | 118 | 2.4. CAPI |
119 | ---- | ||
120 | If the driver is compiled with CAPI support (kernel configuration option | ||
121 | GIGASET_CAPI, experimental) it can also be used with CAPI 2.0 kernel and | ||
122 | user space applications. ISDN4Linux is supported in this configuration | ||
123 | via the capidrv compatibility driver. The kernel module capidrv.ko must | ||
124 | be loaded explicitly ("modprobe capidrv") if needed. | ||
125 | |||
126 | 2.5. Unimodem mode | ||
119 | ------------- | 127 | ------------- |
120 | This is needed for some devices [e.g. SX100] as they have problems with | 128 | This is needed for some devices [e.g. SX100] as they have problems with |
121 | the "normal" commands. | 129 | the "normal" commands. |
@@ -160,7 +168,7 @@ GigaSet 307x Device Driver | |||
160 | configuration file like /etc/modprobe.conf.local, | 168 | configuration file like /etc/modprobe.conf.local, |
161 | using that should be preferred. | 169 | using that should be preferred. |
162 | 170 | ||
163 | 2.5. Call-ID (CID) mode | 171 | 2.6. Call-ID (CID) mode |
164 | ------------------ | 172 | ------------------ |
165 | Call-IDs are numbers used to tag commands to, and responses from, the | 173 | Call-IDs are numbers used to tag commands to, and responses from, the |
166 | Gigaset base in order to support the simultaneous handling of multiple | 174 | Gigaset base in order to support the simultaneous handling of multiple |
@@ -188,7 +196,7 @@ GigaSet 307x Device Driver | |||
188 | You can also use /sys/class/tty/ttyGxy/cidmode for changing the CID mode | 196 | You can also use /sys/class/tty/ttyGxy/cidmode for changing the CID mode |
189 | setting (ttyGxy is ttyGU0 or ttyGB0). | 197 | setting (ttyGxy is ttyGU0 or ttyGB0). |
190 | 198 | ||
191 | 2.6. Unregistered Wireless Devices (M101/M105) | 199 | 2.7. Unregistered Wireless Devices (M101/M105) |
192 | ----------------------------------------- | 200 | ----------------------------------------- |
193 | The main purpose of the ser_gigaset and usb_gigaset drivers is to allow | 201 | The main purpose of the ser_gigaset and usb_gigaset drivers is to allow |
194 | the M101 and M105 wireless devices to be used as ISDN devices for ISDN | 202 | the M101 and M105 wireless devices to be used as ISDN devices for ISDN |
@@ -228,7 +236,7 @@ GigaSet 307x Device Driver | |||
228 | You have two or more DECT data adapters (M101/M105) and only the | 236 | You have two or more DECT data adapters (M101/M105) and only the |
229 | first one you turn on works. | 237 | first one you turn on works. |
230 | Solution: | 238 | Solution: |
231 | Select Unimodem mode for all DECT data adapters. (see section 2.4.) | 239 | Select Unimodem mode for all DECT data adapters. (see section 2.5.) |
232 | 240 | ||
233 | Problem: | 241 | Problem: |
234 | Messages like this: | 242 | Messages like this: |
@@ -236,7 +244,7 @@ GigaSet 307x Device Driver | |||
236 | appear in your syslog. | 244 | appear in your syslog. |
237 | Solution: | 245 | Solution: |
238 | Check whether your M10x wireless device is correctly registered to the | 246 | Check whether your M10x wireless device is correctly registered to the |
239 | Gigaset base. (see section 2.6.) | 247 | Gigaset base. (see section 2.7.) |
240 | 248 | ||
241 | 3.2. Telling the driver to provide more information | 249 | 3.2. Telling the driver to provide more information |
242 | ---------------------------------------------- | 250 | ---------------------------------------------- |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 9107b387e91f..495a39a77341 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -85,7 +85,6 @@ parameter is applicable: | |||
85 | PPT Parallel port support is enabled. | 85 | PPT Parallel port support is enabled. |
86 | PS2 Appropriate PS/2 support is enabled. | 86 | PS2 Appropriate PS/2 support is enabled. |
87 | RAM RAM disk support is enabled. | 87 | RAM RAM disk support is enabled. |
88 | ROOTPLUG The example Root Plug LSM is enabled. | ||
89 | S390 S390 architecture is enabled. | 88 | S390 S390 architecture is enabled. |
90 | SCSI Appropriate SCSI support is enabled. | 89 | SCSI Appropriate SCSI support is enabled. |
91 | A lot of drivers has their options described inside of | 90 | A lot of drivers has their options described inside of |
@@ -345,6 +344,15 @@ and is between 256 and 4096 characters. It is defined in the file | |||
345 | Change the amount of debugging information output | 344 | Change the amount of debugging information output |
346 | when initialising the APIC and IO-APIC components. | 345 | when initialising the APIC and IO-APIC components. |
347 | 346 | ||
347 | show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller | ||
348 | Limit apic dumping. The parameter defines the maximal | ||
349 | number of local apics being dumped. Also it is possible | ||
350 | to set it to "all" by meaning -- no limit here. | ||
351 | Format: { 1 (default) | 2 | ... | all }. | ||
352 | The parameter valid if only apic=debug or | ||
353 | apic=verbose is specified. | ||
354 | Example: apic=debug show_lapic=all | ||
355 | |||
348 | apm= [APM] Advanced Power Management | 356 | apm= [APM] Advanced Power Management |
349 | See header of arch/x86/kernel/apm_32.c. | 357 | See header of arch/x86/kernel/apm_32.c. |
350 | 358 | ||
@@ -779,6 +787,13 @@ and is between 256 and 4096 characters. It is defined in the file | |||
779 | by the set_ftrace_notrace file in the debugfs | 787 | by the set_ftrace_notrace file in the debugfs |
780 | tracing directory. | 788 | tracing directory. |
781 | 789 | ||
790 | ftrace_graph_filter=[function-list] | ||
791 | [FTRACE] Limit the top level callers functions traced | ||
792 | by the function graph tracer at boot up. | ||
793 | function-list is a comma separated list of functions | ||
794 | that can be changed at run time by the | ||
795 | set_graph_function file in the debugfs tracing directory. | ||
796 | |||
782 | gamecon.map[2|3]= | 797 | gamecon.map[2|3]= |
783 | [HW,JOY] Multisystem joystick and NES/SNES/PSX pad | 798 | [HW,JOY] Multisystem joystick and NES/SNES/PSX pad |
784 | support via parallel port (up to 5 devices per port) | 799 | support via parallel port (up to 5 devices per port) |
@@ -2032,8 +2047,15 @@ and is between 256 and 4096 characters. It is defined in the file | |||
2032 | 2047 | ||
2033 | print-fatal-signals= | 2048 | print-fatal-signals= |
2034 | [KNL] debug: print fatal signals | 2049 | [KNL] debug: print fatal signals |
2035 | print-fatal-signals=1: print segfault info to | 2050 | |
2036 | the kernel console. | 2051 | If enabled, warn about various signal handling |
2052 | related application anomalies: too many signals, | ||
2053 | too many POSIX.1 timers, fatal signals causing a | ||
2054 | coredump - etc. | ||
2055 | |||
2056 | If you hit the warning due to signal overflow, | ||
2057 | you might want to try "ulimit -i unlimited". | ||
2058 | |||
2037 | default: off. | 2059 | default: off. |
2038 | 2060 | ||
2039 | printk.time= Show timing data prefixed to each printk message line | 2061 | printk.time= Show timing data prefixed to each printk message line |
@@ -2164,15 +2186,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
2164 | Useful for devices that are detected asynchronously | 2186 | Useful for devices that are detected asynchronously |
2165 | (e.g. USB and MMC devices). | 2187 | (e.g. USB and MMC devices). |
2166 | 2188 | ||
2167 | root_plug.vendor_id= | ||
2168 | [ROOTPLUG] Override the default vendor ID | ||
2169 | |||
2170 | root_plug.product_id= | ||
2171 | [ROOTPLUG] Override the default product ID | ||
2172 | |||
2173 | root_plug.debug= | ||
2174 | [ROOTPLUG] Enable debugging output | ||
2175 | |||
2176 | rw [KNL] Mount root device read-write on boot | 2189 | rw [KNL] Mount root device read-write on boot |
2177 | 2190 | ||
2178 | S [KNL] Run init in single mode | 2191 | S [KNL] Run init in single mode |
@@ -2182,6 +2195,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
2182 | 2195 | ||
2183 | sbni= [NET] Granch SBNI12 leased line adapter | 2196 | sbni= [NET] Granch SBNI12 leased line adapter |
2184 | 2197 | ||
2198 | sched_debug [KNL] Enables verbose scheduler debug messages. | ||
2199 | |||
2185 | sc1200wdt= [HW,WDT] SC1200 WDT (watchdog) driver | 2200 | sc1200wdt= [HW,WDT] SC1200 WDT (watchdog) driver |
2186 | Format: <io>[,<timeout>[,<isapnp>]] | 2201 | Format: <io>[,<timeout>[,<isapnp>]] |
2187 | 2202 | ||
@@ -2590,6 +2605,9 @@ and is between 256 and 4096 characters. It is defined in the file | |||
2590 | uart6850= [HW,OSS] | 2605 | uart6850= [HW,OSS] |
2591 | Format: <io>,<irq> | 2606 | Format: <io>,<irq> |
2592 | 2607 | ||
2608 | uhash_entries= [KNL,NET] | ||
2609 | Set number of hash buckets for UDP/UDP-Lite connections | ||
2610 | |||
2593 | uhci-hcd.ignore_oc= | 2611 | uhci-hcd.ignore_oc= |
2594 | [USB] Ignore overcurrent events (default N). | 2612 | [USB] Ignore overcurrent events (default N). |
2595 | Some badly-designed motherboards generate lots of | 2613 | Some badly-designed motherboards generate lots of |
diff --git a/Documentation/kvm/api.txt b/Documentation/kvm/api.txt index 5a4bc8cf6d04..e1a114161027 100644 --- a/Documentation/kvm/api.txt +++ b/Documentation/kvm/api.txt | |||
@@ -593,6 +593,115 @@ struct kvm_irqchip { | |||
593 | } chip; | 593 | } chip; |
594 | }; | 594 | }; |
595 | 595 | ||
596 | 4.27 KVM_XEN_HVM_CONFIG | ||
597 | |||
598 | Capability: KVM_CAP_XEN_HVM | ||
599 | Architectures: x86 | ||
600 | Type: vm ioctl | ||
601 | Parameters: struct kvm_xen_hvm_config (in) | ||
602 | Returns: 0 on success, -1 on error | ||
603 | |||
604 | Sets the MSR that the Xen HVM guest uses to initialize its hypercall | ||
605 | page, and provides the starting address and size of the hypercall | ||
606 | blobs in userspace. When the guest writes the MSR, kvm copies one | ||
607 | page of a blob (32- or 64-bit, depending on the vcpu mode) to guest | ||
608 | memory. | ||
609 | |||
610 | struct kvm_xen_hvm_config { | ||
611 | __u32 flags; | ||
612 | __u32 msr; | ||
613 | __u64 blob_addr_32; | ||
614 | __u64 blob_addr_64; | ||
615 | __u8 blob_size_32; | ||
616 | __u8 blob_size_64; | ||
617 | __u8 pad2[30]; | ||
618 | }; | ||
619 | |||
620 | 4.27 KVM_GET_CLOCK | ||
621 | |||
622 | Capability: KVM_CAP_ADJUST_CLOCK | ||
623 | Architectures: x86 | ||
624 | Type: vm ioctl | ||
625 | Parameters: struct kvm_clock_data (out) | ||
626 | Returns: 0 on success, -1 on error | ||
627 | |||
628 | Gets the current timestamp of kvmclock as seen by the current guest. In | ||
629 | conjunction with KVM_SET_CLOCK, it is used to ensure monotonicity on scenarios | ||
630 | such as migration. | ||
631 | |||
632 | struct kvm_clock_data { | ||
633 | __u64 clock; /* kvmclock current value */ | ||
634 | __u32 flags; | ||
635 | __u32 pad[9]; | ||
636 | }; | ||
637 | |||
638 | 4.28 KVM_SET_CLOCK | ||
639 | |||
640 | Capability: KVM_CAP_ADJUST_CLOCK | ||
641 | Architectures: x86 | ||
642 | Type: vm ioctl | ||
643 | Parameters: struct kvm_clock_data (in) | ||
644 | Returns: 0 on success, -1 on error | ||
645 | |||
646 | Sets the current timestamp of kvmclock to the valued specific in its parameter. | ||
647 | In conjunction with KVM_GET_CLOCK, it is used to ensure monotonicity on scenarios | ||
648 | such as migration. | ||
649 | |||
650 | struct kvm_clock_data { | ||
651 | __u64 clock; /* kvmclock current value */ | ||
652 | __u32 flags; | ||
653 | __u32 pad[9]; | ||
654 | }; | ||
655 | |||
656 | 4.29 KVM_GET_VCPU_EVENTS | ||
657 | |||
658 | Capability: KVM_CAP_VCPU_EVENTS | ||
659 | Architectures: x86 | ||
660 | Type: vm ioctl | ||
661 | Parameters: struct kvm_vcpu_event (out) | ||
662 | Returns: 0 on success, -1 on error | ||
663 | |||
664 | Gets currently pending exceptions, interrupts, and NMIs as well as related | ||
665 | states of the vcpu. | ||
666 | |||
667 | struct kvm_vcpu_events { | ||
668 | struct { | ||
669 | __u8 injected; | ||
670 | __u8 nr; | ||
671 | __u8 has_error_code; | ||
672 | __u8 pad; | ||
673 | __u32 error_code; | ||
674 | } exception; | ||
675 | struct { | ||
676 | __u8 injected; | ||
677 | __u8 nr; | ||
678 | __u8 soft; | ||
679 | __u8 pad; | ||
680 | } interrupt; | ||
681 | struct { | ||
682 | __u8 injected; | ||
683 | __u8 pending; | ||
684 | __u8 masked; | ||
685 | __u8 pad; | ||
686 | } nmi; | ||
687 | __u32 sipi_vector; | ||
688 | __u32 flags; /* must be zero */ | ||
689 | }; | ||
690 | |||
691 | 4.30 KVM_SET_VCPU_EVENTS | ||
692 | |||
693 | Capability: KVM_CAP_VCPU_EVENTS | ||
694 | Architectures: x86 | ||
695 | Type: vm ioctl | ||
696 | Parameters: struct kvm_vcpu_event (in) | ||
697 | Returns: 0 on success, -1 on error | ||
698 | |||
699 | Set pending exceptions, interrupts, and NMIs as well as related states of the | ||
700 | vcpu. | ||
701 | |||
702 | See KVM_GET_VCPU_EVENTS for the data structure. | ||
703 | |||
704 | |||
596 | 5. The kvm_run structure | 705 | 5. The kvm_run structure |
597 | 706 | ||
598 | Application code obtains a pointer to the kvm_run structure by | 707 | Application code obtains a pointer to the kvm_run structure by |
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index d5181ce9ff62..61f516b135b4 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | 1 | ||
2 | Linux Ethernet Bonding Driver HOWTO | 2 | Linux Ethernet Bonding Driver HOWTO |
3 | 3 | ||
4 | Latest update: 12 November 2007 | 4 | Latest update: 23 September 2009 |
5 | 5 | ||
6 | Initial release : Thomas Davis <tadavis at lbl.gov> | 6 | Initial release : Thomas Davis <tadavis at lbl.gov> |
7 | Corrections, HA extensions : 2000/10/03-15 : | 7 | Corrections, HA extensions : 2000/10/03-15 : |
@@ -614,6 +614,46 @@ primary | |||
614 | 614 | ||
615 | The primary option is only valid for active-backup mode. | 615 | The primary option is only valid for active-backup mode. |
616 | 616 | ||
617 | primary_reselect | ||
618 | |||
619 | Specifies the reselection policy for the primary slave. This | ||
620 | affects how the primary slave is chosen to become the active slave | ||
621 | when failure of the active slave or recovery of the primary slave | ||
622 | occurs. This option is designed to prevent flip-flopping between | ||
623 | the primary slave and other slaves. Possible values are: | ||
624 | |||
625 | always or 0 (default) | ||
626 | |||
627 | The primary slave becomes the active slave whenever it | ||
628 | comes back up. | ||
629 | |||
630 | better or 1 | ||
631 | |||
632 | The primary slave becomes the active slave when it comes | ||
633 | back up, if the speed and duplex of the primary slave is | ||
634 | better than the speed and duplex of the current active | ||
635 | slave. | ||
636 | |||
637 | failure or 2 | ||
638 | |||
639 | The primary slave becomes the active slave only if the | ||
640 | current active slave fails and the primary slave is up. | ||
641 | |||
642 | The primary_reselect setting is ignored in two cases: | ||
643 | |||
644 | If no slaves are active, the first slave to recover is | ||
645 | made the active slave. | ||
646 | |||
647 | When initially enslaved, the primary slave is always made | ||
648 | the active slave. | ||
649 | |||
650 | Changing the primary_reselect policy via sysfs will cause an | ||
651 | immediate selection of the best active slave according to the new | ||
652 | policy. This may or may not result in a change of the active | ||
653 | slave, depending upon the circumstances. | ||
654 | |||
655 | This option was added for bonding version 3.6.0. | ||
656 | |||
617 | updelay | 657 | updelay |
618 | 658 | ||
619 | Specifies the time, in milliseconds, to wait before enabling a | 659 | Specifies the time, in milliseconds, to wait before enabling a |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index fbe427a6580c..006b39dec87d 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
@@ -164,6 +164,14 @@ tcp_congestion_control - STRING | |||
164 | additional choices may be available based on kernel configuration. | 164 | additional choices may be available based on kernel configuration. |
165 | Default is set as part of kernel configuration. | 165 | Default is set as part of kernel configuration. |
166 | 166 | ||
167 | tcp_cookie_size - INTEGER | ||
168 | Default size of TCP Cookie Transactions (TCPCT) option, that may be | ||
169 | overridden on a per socket basis by the TCPCT socket option. | ||
170 | Values greater than the maximum (16) are interpreted as the maximum. | ||
171 | Values greater than zero and less than the minimum (8) are interpreted | ||
172 | as the minimum. Odd values are interpreted as the next even value. | ||
173 | Default: 0 (off). | ||
174 | |||
167 | tcp_dsack - BOOLEAN | 175 | tcp_dsack - BOOLEAN |
168 | Allows TCP to send "duplicate" SACKs. | 176 | Allows TCP to send "duplicate" SACKs. |
169 | 177 | ||
@@ -723,6 +731,12 @@ accept_source_route - BOOLEAN | |||
723 | default TRUE (router) | 731 | default TRUE (router) |
724 | FALSE (host) | 732 | FALSE (host) |
725 | 733 | ||
734 | accept_local - BOOLEAN | ||
735 | Accept packets with local source addresses. In combination with | ||
736 | suitable routing, this can be used to direct packets between two | ||
737 | local interfaces over the wire and have them accepted properly. | ||
738 | default FALSE | ||
739 | |||
726 | rp_filter - INTEGER | 740 | rp_filter - INTEGER |
727 | 0 - No source validation. | 741 | 0 - No source validation. |
728 | 1 - Strict mode as defined in RFC3704 Strict Reverse Path | 742 | 1 - Strict mode as defined in RFC3704 Strict Reverse Path |
@@ -738,8 +752,8 @@ rp_filter - INTEGER | |||
738 | to prevent IP spoofing from DDos attacks. If using asymmetric routing | 752 | to prevent IP spoofing from DDos attacks. If using asymmetric routing |
739 | or other complicated routing, then loose mode is recommended. | 753 | or other complicated routing, then loose mode is recommended. |
740 | 754 | ||
741 | conf/all/rp_filter must also be set to non-zero to do source validation | 755 | The max value from conf/{all,interface}/rp_filter is used |
742 | on the interface | 756 | when doing source validation on the {interface}. |
743 | 757 | ||
744 | Default value is 0. Note that some distributions enable it | 758 | Default value is 0. Note that some distributions enable it |
745 | in startup scripts. | 759 | in startup scripts. |
@@ -1086,6 +1100,24 @@ accept_dad - INTEGER | |||
1086 | 2: Enable DAD, and disable IPv6 operation if MAC-based duplicate | 1100 | 2: Enable DAD, and disable IPv6 operation if MAC-based duplicate |
1087 | link-local address has been found. | 1101 | link-local address has been found. |
1088 | 1102 | ||
1103 | force_tllao - BOOLEAN | ||
1104 | Enable sending the target link-layer address option even when | ||
1105 | responding to a unicast neighbor solicitation. | ||
1106 | Default: FALSE | ||
1107 | |||
1108 | Quoting from RFC 2461, section 4.4, Target link-layer address: | ||
1109 | |||
1110 | "The option MUST be included for multicast solicitations in order to | ||
1111 | avoid infinite Neighbor Solicitation "recursion" when the peer node | ||
1112 | does not have a cache entry to return a Neighbor Advertisements | ||
1113 | message. When responding to unicast solicitations, the option can be | ||
1114 | omitted since the sender of the solicitation has the correct link- | ||
1115 | layer address; otherwise it would not have be able to send the unicast | ||
1116 | solicitation in the first place. However, including the link-layer | ||
1117 | address in this case adds little overhead and eliminates a potential | ||
1118 | race condition where the sender deletes the cached link-layer address | ||
1119 | prior to receiving a response to a previous solicitation." | ||
1120 | |||
1089 | icmp/*: | 1121 | icmp/*: |
1090 | ratelimit - INTEGER | 1122 | ratelimit - INTEGER |
1091 | Limit the maximal rates for sending ICMPv6 packets. | 1123 | Limit the maximal rates for sending ICMPv6 packets. |
diff --git a/Documentation/pcmcia/driver-changes.txt b/Documentation/pcmcia/driver-changes.txt index 059934363caf..446f43b309df 100644 --- a/Documentation/pcmcia/driver-changes.txt +++ b/Documentation/pcmcia/driver-changes.txt | |||
@@ -1,5 +1,17 @@ | |||
1 | This file details changes in 2.6 which affect PCMCIA card driver authors: | 1 | This file details changes in 2.6 which affect PCMCIA card driver authors: |
2 | 2 | ||
3 | * no cs_error / CS_CHECK / CONFIG_PCMCIA_DEBUG (as of 2.6.33) | ||
4 | Instead of the cs_error() callback or the CS_CHECK() macro, please use | ||
5 | Linux-style checking of return values, and -- if necessary -- debug | ||
6 | messages using "dev_dbg()" or "pr_debug()". | ||
7 | |||
8 | * New CIS tuple access (as of 2.6.33) | ||
9 | Instead of pcmcia_get_{first,next}_tuple(), pcmcia_get_tuple_data() and | ||
10 | pcmcia_parse_tuple(), a driver shall use "pcmcia_get_tuple()" if it is | ||
11 | only interested in one (raw) tuple, or "pcmcia_loop_tuple()" if it is | ||
12 | interested in all tuples of one type. To decode the MAC from CISTPL_FUNCE, | ||
13 | a new helper "pcmcia_get_mac_from_cis()" was added. | ||
14 | |||
3 | * New configuration loop helper (as of 2.6.28) | 15 | * New configuration loop helper (as of 2.6.28) |
4 | By calling pcmcia_loop_config(), a driver can iterate over all available | 16 | By calling pcmcia_loop_config(), a driver can iterate over all available |
5 | configuration options. During a driver's probe() phase, one doesn't need | 17 | configuration options. During a driver's probe() phase, one doesn't need |
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt index f49a33b704d2..4a3109b28847 100644 --- a/Documentation/power/runtime_pm.txt +++ b/Documentation/power/runtime_pm.txt | |||
@@ -38,7 +38,7 @@ struct dev_pm_ops { | |||
38 | ... | 38 | ... |
39 | int (*runtime_suspend)(struct device *dev); | 39 | int (*runtime_suspend)(struct device *dev); |
40 | int (*runtime_resume)(struct device *dev); | 40 | int (*runtime_resume)(struct device *dev); |
41 | void (*runtime_idle)(struct device *dev); | 41 | int (*runtime_idle)(struct device *dev); |
42 | ... | 42 | ... |
43 | }; | 43 | }; |
44 | 44 | ||
@@ -71,9 +71,9 @@ what to do to handle the device). | |||
71 | purpose). | 71 | purpose). |
72 | 72 | ||
73 | In particular, if the driver requires remote wakeup capability for proper | 73 | In particular, if the driver requires remote wakeup capability for proper |
74 | functioning and device_may_wakeup() returns 'false' for the device, then | 74 | functioning and device_run_wake() returns 'false' for the device, then |
75 | ->runtime_suspend() should return -EBUSY. On the other hand, if | 75 | ->runtime_suspend() should return -EBUSY. On the other hand, if |
76 | device_may_wakeup() returns 'true' for the device and the device is put | 76 | device_run_wake() returns 'true' for the device and the device is put |
77 | into a low power state during the execution of its bus type's | 77 | into a low power state during the execution of its bus type's |
78 | ->runtime_suspend(), it is expected that remote wake-up (i.e. hardware mechanism | 78 | ->runtime_suspend(), it is expected that remote wake-up (i.e. hardware mechanism |
79 | allowing the device to request a change of its power state, such as PCI PME) | 79 | allowing the device to request a change of its power state, such as PCI PME) |
@@ -114,7 +114,8 @@ The action performed by a bus type's ->runtime_idle() callback is totally | |||
114 | dependent on the bus type in question, but the expected and recommended action | 114 | dependent on the bus type in question, but the expected and recommended action |
115 | is to check if the device can be suspended (i.e. if all of the conditions | 115 | is to check if the device can be suspended (i.e. if all of the conditions |
116 | necessary for suspending the device are satisfied) and to queue up a suspend | 116 | necessary for suspending the device are satisfied) and to queue up a suspend |
117 | request for the device in that case. | 117 | request for the device in that case. The value returned by this callback is |
118 | ignored by the PM core. | ||
118 | 119 | ||
119 | The helper functions provided by the PM core, described in Section 4, guarantee | 120 | The helper functions provided by the PM core, described in Section 4, guarantee |
120 | that the following constraints are met with respect to the bus type's run-time | 121 | that the following constraints are met with respect to the bus type's run-time |
@@ -214,6 +215,9 @@ defined in include/linux/pm.h: | |||
214 | being executed for that device and it is not practical to wait for the | 215 | being executed for that device and it is not practical to wait for the |
215 | suspend to complete; means "start a resume as soon as you've suspended" | 216 | suspend to complete; means "start a resume as soon as you've suspended" |
216 | 217 | ||
218 | unsigned int run_wake; | ||
219 | - set if the device is capable of generating run-time wake-up events | ||
220 | |||
217 | enum rpm_status runtime_status; | 221 | enum rpm_status runtime_status; |
218 | - the run-time PM status of the device; this field's initial value is | 222 | - the run-time PM status of the device; this field's initial value is |
219 | RPM_SUSPENDED, which means that each device is initially regarded by the | 223 | RPM_SUSPENDED, which means that each device is initially regarded by the |
diff --git a/Documentation/powerpc/dts-bindings/fsl/mpc5200.txt b/Documentation/powerpc/dts-bindings/fsl/mpc5200.txt index 8447fd7090d0..cabc780f7258 100644 --- a/Documentation/powerpc/dts-bindings/fsl/mpc5200.txt +++ b/Documentation/powerpc/dts-bindings/fsl/mpc5200.txt | |||
@@ -178,3 +178,13 @@ External interrupts: | |||
178 | external irq3: interrupts = <1 3 n>; | 178 | external irq3: interrupts = <1 3 n>; |
179 | 'n' is sense (0: level high, 1: edge rising, 2: edge falling 3: level low) | 179 | 'n' is sense (0: level high, 1: edge rising, 2: edge falling 3: level low) |
180 | 180 | ||
181 | fsl,mpc5200-mscan nodes | ||
182 | ----------------------- | ||
183 | In addition to the required compatible-, reg- and interrupt-properites, you can | ||
184 | also specify which clock source shall be used for the controller: | ||
185 | |||
186 | - fsl,mscan-clock-source- a string describing the clock source. Valid values | ||
187 | are: "ip" for ip bus clock | ||
188 | "ref" for reference clock (XTAL) | ||
189 | "ref" is default in case this property is not | ||
190 | present. | ||
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index fd9a2f67edf2..8923597bd2bd 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -798,6 +798,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
798 | setup before initializing the codecs. This option is | 798 | setup before initializing the codecs. This option is |
799 | available only when CONFIG_SND_HDA_PATCH_LOADER=y is set. | 799 | available only when CONFIG_SND_HDA_PATCH_LOADER=y is set. |
800 | See HD-Audio.txt for details. | 800 | See HD-Audio.txt for details. |
801 | beep_mode - Selects the beep registration mode (0=off, 1=on, 2= | ||
802 | dynamic registration via mute switch on/off); the default | ||
803 | value is set via CONFIG_SND_HDA_INPUT_BEEP_MODE kconfig. | ||
801 | 804 | ||
802 | [Single (global) options] | 805 | [Single (global) options] |
803 | single_cmd - Use single immediate commands to communicate with | 806 | single_cmd - Use single immediate commands to communicate with |
@@ -1454,6 +1457,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1454 | 1457 | ||
1455 | Module for internal PC-Speaker. | 1458 | Module for internal PC-Speaker. |
1456 | 1459 | ||
1460 | nopcm - Disable PC-Speaker PCM sound. Only beeps remain. | ||
1457 | nforce_wa - enable NForce chipset workaround. Expect bad sound. | 1461 | nforce_wa - enable NForce chipset workaround. Expect bad sound. |
1458 | 1462 | ||
1459 | This module supports system beeps, some kind of PCM playback and | 1463 | This module supports system beeps, some kind of PCM playback and |
@@ -1631,7 +1635,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1631 | Module snd-sscape | 1635 | Module snd-sscape |
1632 | ----------------- | 1636 | ----------------- |
1633 | 1637 | ||
1634 | Module for ENSONIQ SoundScape PnP cards. | 1638 | Module for ENSONIQ SoundScape cards. |
1635 | 1639 | ||
1636 | port - Port # (PnP setup) | 1640 | port - Port # (PnP setup) |
1637 | wss_port - WSS Port # (PnP setup) | 1641 | wss_port - WSS Port # (PnP setup) |
@@ -1639,10 +1643,11 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1639 | mpu_irq - MPU-401 IRQ # (PnP setup) | 1643 | mpu_irq - MPU-401 IRQ # (PnP setup) |
1640 | dma - DMA # (PnP setup) | 1644 | dma - DMA # (PnP setup) |
1641 | dma2 - 2nd DMA # (PnP setup, -1 to disable) | 1645 | dma2 - 2nd DMA # (PnP setup, -1 to disable) |
1646 | joystick - Enable gameport - 0 = disable (default), 1 = enable | ||
1647 | |||
1648 | This module supports multiple cards. | ||
1642 | 1649 | ||
1643 | This module supports multiple cards. ISA PnP must be enabled. | 1650 | The driver requires the firmware loader support on kernel. |
1644 | You need sscape_ctl tool in alsa-tools package for loading | ||
1645 | the microcode. | ||
1646 | 1651 | ||
1647 | Module snd-sun-amd7930 (on sparc only) | 1652 | Module snd-sun-amd7930 (on sparc only) |
1648 | -------------------------------------- | 1653 | -------------------------------------- |
diff --git a/Documentation/sound/alsa/ControlNames.txt b/Documentation/sound/alsa/ControlNames.txt index 5b18298e9495..fea65bb6269e 100644 --- a/Documentation/sound/alsa/ControlNames.txt +++ b/Documentation/sound/alsa/ControlNames.txt | |||
@@ -18,8 +18,9 @@ SOURCE: | |||
18 | Master | 18 | Master |
19 | Master Mono | 19 | Master Mono |
20 | Hardware Master | 20 | Hardware Master |
21 | Speaker (internal speaker) | ||
21 | Headphone | 22 | Headphone |
22 | PC Speaker | 23 | Beep (beep generator) |
23 | Phone | 24 | Phone |
24 | Phone Input | 25 | Phone Input |
25 | Phone Output | 26 | Phone Output |
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt index 4c7f9aee5c4e..9000cd84d076 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt | |||
@@ -391,6 +391,7 @@ STAC92HD83* | |||
391 | ref Reference board | 391 | ref Reference board |
392 | mic-ref Reference board with power management for ports | 392 | mic-ref Reference board with power management for ports |
393 | dell-s14 Dell laptop | 393 | dell-s14 Dell laptop |
394 | hp HP laptops with (inverted) mute-LED | ||
394 | auto BIOS setup (default) | 395 | auto BIOS setup (default) |
395 | 396 | ||
396 | STAC9872 | 397 | STAC9872 |
diff --git a/Documentation/sysctl/ctl_unnumbered.txt b/Documentation/sysctl/ctl_unnumbered.txt deleted file mode 100644 index 23003a8ea3e7..000000000000 --- a/Documentation/sysctl/ctl_unnumbered.txt +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | |||
2 | Except for a few extremely rare exceptions user space applications do not use | ||
3 | the binary sysctl interface. Instead everyone uses /proc/sys/... with | ||
4 | readable ascii names. | ||
5 | |||
6 | Recently the kernel has started supporting setting the binary sysctl value to | ||
7 | CTL_UNNUMBERED so we no longer need to assign a binary sysctl path to allow | ||
8 | sysctls to show up in /proc/sys. | ||
9 | |||
10 | Assigning binary sysctl numbers is an endless source of conflicts in sysctl.h, | ||
11 | breaking of the user space ABI (because of those conflicts), and maintenance | ||
12 | problems. A complete pass through all of the sysctl users revealed multiple | ||
13 | instances where the sysctl binary interface was broken and had gone undetected | ||
14 | for years. | ||
15 | |||
16 | So please do not add new binary sysctl numbers. They are unneeded and | ||
17 | problematic. | ||
18 | |||
19 | If you really need a new binary sysctl number please first merge your sysctl | ||
20 | into the kernel and then as a separate patch allocate a binary sysctl number. | ||
21 | |||
22 | (ebiederm@xmission.com, June 2007) | ||
diff --git a/Documentation/trace/ftrace-design.txt b/Documentation/trace/ftrace-design.txt index 7003e10f10f5..641a1ef2a7ff 100644 --- a/Documentation/trace/ftrace-design.txt +++ b/Documentation/trace/ftrace-design.txt | |||
@@ -213,10 +213,19 @@ If you can't trace NMI functions, then skip this option. | |||
213 | <details to be filled> | 213 | <details to be filled> |
214 | 214 | ||
215 | 215 | ||
216 | HAVE_FTRACE_SYSCALLS | 216 | HAVE_SYSCALL_TRACEPOINTS |
217 | --------------------- | 217 | --------------------- |
218 | 218 | ||
219 | <details to be filled> | 219 | You need very few things to get the syscalls tracing in an arch. |
220 | |||
221 | - Have a NR_syscalls variable in <asm/unistd.h> that provides the number | ||
222 | of syscalls supported by the arch. | ||
223 | - Implement arch_syscall_addr() that resolves a syscall address from a | ||
224 | syscall number. | ||
225 | - Support the TIF_SYSCALL_TRACEPOINT thread flags | ||
226 | - Put the trace_sys_enter() and trace_sys_exit() tracepoints calls from ptrace | ||
227 | in the ptrace syscalls tracing path. | ||
228 | - Tag this arch as HAVE_SYSCALL_TRACEPOINTS. | ||
220 | 229 | ||
221 | 230 | ||
222 | HAVE_FTRACE_MCOUNT_RECORD | 231 | HAVE_FTRACE_MCOUNT_RECORD |
diff --git a/Documentation/trace/kprobetrace.txt b/Documentation/trace/kprobetrace.txt new file mode 100644 index 000000000000..47aabeebbdf6 --- /dev/null +++ b/Documentation/trace/kprobetrace.txt | |||
@@ -0,0 +1,149 @@ | |||
1 | Kprobe-based Event Tracing | ||
2 | ========================== | ||
3 | |||
4 | Documentation is written by Masami Hiramatsu | ||
5 | |||
6 | |||
7 | Overview | ||
8 | -------- | ||
9 | These events are similar to tracepoint based events. Instead of Tracepoint, | ||
10 | this is based on kprobes (kprobe and kretprobe). So it can probe wherever | ||
11 | kprobes can probe (this means, all functions body except for __kprobes | ||
12 | functions). Unlike the Tracepoint based event, this can be added and removed | ||
13 | dynamically, on the fly. | ||
14 | |||
15 | To enable this feature, build your kernel with CONFIG_KPROBE_TRACING=y. | ||
16 | |||
17 | Similar to the events tracer, this doesn't need to be activated via | ||
18 | current_tracer. Instead of that, add probe points via | ||
19 | /sys/kernel/debug/tracing/kprobe_events, and enable it via | ||
20 | /sys/kernel/debug/tracing/events/kprobes/<EVENT>/enabled. | ||
21 | |||
22 | |||
23 | Synopsis of kprobe_events | ||
24 | ------------------------- | ||
25 | p[:[GRP/]EVENT] SYMBOL[+offs]|MEMADDR [FETCHARGS] : Set a probe | ||
26 | r[:[GRP/]EVENT] SYMBOL[+0] [FETCHARGS] : Set a return probe | ||
27 | |||
28 | GRP : Group name. If omitted, use "kprobes" for it. | ||
29 | EVENT : Event name. If omitted, the event name is generated | ||
30 | based on SYMBOL+offs or MEMADDR. | ||
31 | SYMBOL[+offs] : Symbol+offset where the probe is inserted. | ||
32 | MEMADDR : Address where the probe is inserted. | ||
33 | |||
34 | FETCHARGS : Arguments. Each probe can have up to 128 args. | ||
35 | %REG : Fetch register REG | ||
36 | @ADDR : Fetch memory at ADDR (ADDR should be in kernel) | ||
37 | @SYM[+|-offs] : Fetch memory at SYM +|- offs (SYM should be a data symbol) | ||
38 | $stackN : Fetch Nth entry of stack (N >= 0) | ||
39 | $stack : Fetch stack address. | ||
40 | $argN : Fetch function argument. (N >= 0)(*) | ||
41 | $retval : Fetch return value.(**) | ||
42 | +|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(***) | ||
43 | NAME=FETCHARG: Set NAME as the argument name of FETCHARG. | ||
44 | |||
45 | (*) aN may not correct on asmlinkaged functions and at the middle of | ||
46 | function body. | ||
47 | (**) only for return probe. | ||
48 | (***) this is useful for fetching a field of data structures. | ||
49 | |||
50 | |||
51 | Per-Probe Event Filtering | ||
52 | ------------------------- | ||
53 | Per-probe event filtering feature allows you to set different filter on each | ||
54 | probe and gives you what arguments will be shown in trace buffer. If an event | ||
55 | name is specified right after 'p:' or 'r:' in kprobe_events, it adds an event | ||
56 | under tracing/events/kprobes/<EVENT>, at the directory you can see 'id', | ||
57 | 'enabled', 'format' and 'filter'. | ||
58 | |||
59 | enabled: | ||
60 | You can enable/disable the probe by writing 1 or 0 on it. | ||
61 | |||
62 | format: | ||
63 | This shows the format of this probe event. | ||
64 | |||
65 | filter: | ||
66 | You can write filtering rules of this event. | ||
67 | |||
68 | id: | ||
69 | This shows the id of this probe event. | ||
70 | |||
71 | |||
72 | Event Profiling | ||
73 | --------------- | ||
74 | You can check the total number of probe hits and probe miss-hits via | ||
75 | /sys/kernel/debug/tracing/kprobe_profile. | ||
76 | The first column is event name, the second is the number of probe hits, | ||
77 | the third is the number of probe miss-hits. | ||
78 | |||
79 | |||
80 | Usage examples | ||
81 | -------------- | ||
82 | To add a probe as a new event, write a new definition to kprobe_events | ||
83 | as below. | ||
84 | |||
85 | echo p:myprobe do_sys_open dfd=$arg0 filename=$arg1 flags=$arg2 mode=$arg3 > /sys/kernel/debug/tracing/kprobe_events | ||
86 | |||
87 | This sets a kprobe on the top of do_sys_open() function with recording | ||
88 | 1st to 4th arguments as "myprobe" event. As this example shows, users can | ||
89 | choose more familiar names for each arguments. | ||
90 | |||
91 | echo r:myretprobe do_sys_open $retval >> /sys/kernel/debug/tracing/kprobe_events | ||
92 | |||
93 | This sets a kretprobe on the return point of do_sys_open() function with | ||
94 | recording return value as "myretprobe" event. | ||
95 | You can see the format of these events via | ||
96 | /sys/kernel/debug/tracing/events/kprobes/<EVENT>/format. | ||
97 | |||
98 | cat /sys/kernel/debug/tracing/events/kprobes/myprobe/format | ||
99 | name: myprobe | ||
100 | ID: 75 | ||
101 | format: | ||
102 | field:unsigned short common_type; offset:0; size:2; | ||
103 | field:unsigned char common_flags; offset:2; size:1; | ||
104 | field:unsigned char common_preempt_count; offset:3; size:1; | ||
105 | field:int common_pid; offset:4; size:4; | ||
106 | field:int common_tgid; offset:8; size:4; | ||
107 | |||
108 | field: unsigned long ip; offset:16;tsize:8; | ||
109 | field: int nargs; offset:24;tsize:4; | ||
110 | field: unsigned long dfd; offset:32;tsize:8; | ||
111 | field: unsigned long filename; offset:40;tsize:8; | ||
112 | field: unsigned long flags; offset:48;tsize:8; | ||
113 | field: unsigned long mode; offset:56;tsize:8; | ||
114 | |||
115 | print fmt: "(%lx) dfd=%lx filename=%lx flags=%lx mode=%lx", REC->ip, REC->dfd, REC->filename, REC->flags, REC->mode | ||
116 | |||
117 | |||
118 | You can see that the event has 4 arguments as in the expressions you specified. | ||
119 | |||
120 | echo > /sys/kernel/debug/tracing/kprobe_events | ||
121 | |||
122 | This clears all probe points. | ||
123 | |||
124 | Right after definition, each event is disabled by default. For tracing these | ||
125 | events, you need to enable it. | ||
126 | |||
127 | echo 1 > /sys/kernel/debug/tracing/events/kprobes/myprobe/enable | ||
128 | echo 1 > /sys/kernel/debug/tracing/events/kprobes/myretprobe/enable | ||
129 | |||
130 | And you can see the traced information via /sys/kernel/debug/tracing/trace. | ||
131 | |||
132 | cat /sys/kernel/debug/tracing/trace | ||
133 | # tracer: nop | ||
134 | # | ||
135 | # TASK-PID CPU# TIMESTAMP FUNCTION | ||
136 | # | | | | | | ||
137 | <...>-1447 [001] 1038282.286875: myprobe: (do_sys_open+0x0/0xd6) dfd=3 filename=7fffd1ec4440 flags=8000 mode=0 | ||
138 | <...>-1447 [001] 1038282.286878: myretprobe: (sys_openat+0xc/0xe <- do_sys_open) $retval=fffffffffffffffe | ||
139 | <...>-1447 [001] 1038282.286885: myprobe: (do_sys_open+0x0/0xd6) dfd=ffffff9c filename=40413c flags=8000 mode=1b6 | ||
140 | <...>-1447 [001] 1038282.286915: myretprobe: (sys_open+0x1b/0x1d <- do_sys_open) $retval=3 | ||
141 | <...>-1447 [001] 1038282.286969: myprobe: (do_sys_open+0x0/0xd6) dfd=ffffff9c filename=4041c6 flags=98800 mode=10 | ||
142 | <...>-1447 [001] 1038282.286976: myretprobe: (sys_open+0x1b/0x1d <- do_sys_open) $retval=3 | ||
143 | |||
144 | |||
145 | Each line shows when the kernel hits an event, and <- SYMBOL means kernel | ||
146 | returns from SYMBOL(e.g. "sys_open+0x1b/0x1d <- do_sys_open" means kernel | ||
147 | returns from do_sys_open to sys_open+0x1b). | ||
148 | |||
149 | |||