diff options
-rw-r--r-- | Documentation/RCU/trace.txt | 65 |
1 files changed, 34 insertions, 31 deletions
diff --git a/Documentation/RCU/trace.txt b/Documentation/RCU/trace.txt index 5a704ffd0bbc..13dbf9bccdbf 100644 --- a/Documentation/RCU/trace.txt +++ b/Documentation/RCU/trace.txt | |||
@@ -21,23 +21,23 @@ rcu_pending() function decided that there was core RCU work to do). | |||
21 | The output of "cat rcu/rcudata" looks as follows: | 21 | The output of "cat rcu/rcudata" looks as follows: |
22 | 22 | ||
23 | rcu_sched: | 23 | rcu_sched: |
24 | 0 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=10951/1/0 df=1101 of=0 ri=36 ql=0 b=10 | 24 | 0!c=423090 g=423091 pq=1 pqc=423090 qp=1 dt=86475/1/0 df=16319 of=163 ri=1519 ql=0 b=10 ci=1460693 co=1648 ca=6448 |
25 | 1 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=16117/1/0 df=1015 of=0 ri=0 ql=0 b=10 | 25 | 1!c=423329 g=423330 pq=1 pqc=423329 qp=1 dt=90875/1/0 df=16231 of=157 ri=1249 ql=0 b=10 ci=1459002 co=1614 ca=3310 |
26 | 2 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=1445/1/0 df=1839 of=0 ri=0 ql=0 b=10 | 26 | 2!c=423370 g=423371 pq=1 pqc=423370 qp=1 dt=69661/1/0 df=16125 of=163 ri=1469 ql=0 b=10 ci=1610701 co=2015 ca=2378 |
27 | 3 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=6681/1/0 df=1545 of=0 ri=0 ql=0 b=10 | 27 | 3!c=422967 g=422968 pq=1 pqc=422967 qp=1 dt=70349/1/0 df=12528 of=163 ri=1450 ql=0 b=10 ci=1427543 co=1430 ca=897 |
28 | 4 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=1003/1/0 df=1992 of=0 ri=0 ql=0 b=10 | 28 | 4!c=423196 g=423197 pq=1 pqc=423196 qp=0 dt=38935/1/0 df=10959 of=177 ri=1657 ql=0 b=10 ci=1562249 co=1896 ca=533 |
29 | 5 c=17829 g=17830 pq=1 pqc=17829 qp=1 dt=3887/1/0 df=3331 of=0 ri=4 ql=2 b=10 | 29 | 5!c=422950 g=422951 pq=1 pqc=422950 qp=0 dt=25127/1/0 df=5895 of=167 ri=1549 ql=0 b=10 ci=1777260 co=2137 ca=274 |
30 | 6 c=17829 g=17829 pq=1 pqc=17829 qp=0 dt=859/1/0 df=3224 of=0 ri=0 ql=0 b=10 | 30 | 6!c=423396 g=423397 pq=1 pqc=423396 qp=1 dt=22639/1/0 df=4590 of=149 ri=1572 ql=0 b=10 ci=1471186 co=1530 ca=243 |
31 | 7 c=17829 g=17830 pq=0 pqc=17829 qp=1 dt=3761/1/0 df=1818 of=0 ri=0 ql=2 b=10 | 31 | 7 c=460203 g=460203 pq=1 pqc=460202 qp=0 dt=937087/1/0 df=3298 of=149 ri=1584 ql=6 b=10 ci=4026154 co=1948 ca=135 |
32 | rcu_bh: | 32 | rcu_bh: |
33 | 0 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=10951/1/0 df=0 of=0 ri=0 ql=0 b=10 | 33 | 0!c=18446744073709551494 g=18446744073709551494 pq=0 pqc=18446744073709551493 qp=1 dt=86475/1/0 df=11 of=0 ri=0 ql=0 b=10 ci=112 co=0 ca=0 |
34 | 1 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=16117/1/0 df=13 of=0 ri=0 ql=0 b=10 | 34 | 1!c=18446744073709551496 g=18446744073709551496 pq=1 pqc=18446744073709551495 qp=0 dt=90875/1/0 df=15 of=0 ri=0 ql=0 b=10 ci=143 co=0 ca=0 |
35 | 2 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=1445/1/0 df=15 of=0 ri=0 ql=0 b=10 | 35 | 2!c=18446744073709551496 g=18446744073709551496 pq=1 pqc=18446744073709551495 qp=0 dt=69661/1/0 df=21 of=0 ri=1 ql=0 b=10 ci=88 co=0 ca=0 |
36 | 3 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=6681/1/0 df=9 of=0 ri=0 ql=0 b=10 | 36 | 3!c=18446744073709551494 g=18446744073709551494 pq=1 pqc=18446744073709551493 qp=0 dt=70349/1/0 df=13 of=0 ri=0 ql=0 b=10 ci=100 co=0 ca=0 |
37 | 4 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=1003/1/0 df=15 of=0 ri=0 ql=0 b=10 | 37 | 4!c=18446744073709551494 g=18446744073709551494 pq=0 pqc=18446744073709551493 qp=1 dt=38935/1/0 df=17 of=0 ri=0 ql=0 b=10 ci=36 co=0 ca=0 |
38 | 5 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=3887/1/0 df=15 of=0 ri=0 ql=0 b=10 | 38 | 5!c=18446744073709551494 g=18446744073709551494 pq=0 pqc=18446744073709551493 qp=1 dt=25127/1/0 df=7 of=0 ri=0 ql=0 b=10 ci=32 co=0 ca=0 |
39 | 6 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=859/1/0 df=15 of=0 ri=0 ql=0 b=10 | 39 | 6!c=18446744073709551496 g=18446744073709551496 pq=1 pqc=18446744073709551495 qp=0 dt=22639/1/0 df=9 of=0 ri=0 ql=0 b=10 ci=44 co=0 ca=0 |
40 | 7 c=-275 g=-275 pq=1 pqc=-275 qp=0 dt=3761/1/0 df=15 of=0 ri=0 ql=0 b=10 | 40 | 7 c=182 g=182 pq=1 pqc=181 qp=0 dt=937087/1/0 df=14 of=0 ri=1 ql=0 b=10 ci=627 co=0 ca=0 |
41 | 41 | ||
42 | The first section lists the rcu_data structures for rcu_sched, the second | 42 | The first section lists the rcu_data structures for rcu_sched, the second |
43 | for rcu_bh. Note that CONFIG_TREE_PREEMPT_RCU kernels will have an | 43 | for rcu_bh. Note that CONFIG_TREE_PREEMPT_RCU kernels will have an |
@@ -52,17 +52,18 @@ o The number at the beginning of each line is the CPU number. | |||
52 | substantially larger than the number of actual CPUs. | 52 | substantially larger than the number of actual CPUs. |
53 | 53 | ||
54 | o "c" is the count of grace periods that this CPU believes have | 54 | o "c" is the count of grace periods that this CPU believes have |
55 | completed. CPUs in dynticks idle mode may lag quite a ways | 55 | completed. Offlined CPUs and CPUs in dynticks idle mode may |
56 | behind, for example, CPU 4 under "rcu_sched" above, which has | 56 | lag quite a ways behind, for example, CPU 6 under "rcu_sched" |
57 | slept through the past 25 RCU grace periods. It is not unusual | 57 | above, which has been offline through not quite 40,000 RCU grace |
58 | to see CPUs lagging by thousands of grace periods. | 58 | periods. It is not unusual to see CPUs lagging by thousands of |
59 | grace periods. | ||
59 | 60 | ||
60 | o "g" is the count of grace periods that this CPU believes have | 61 | o "g" is the count of grace periods that this CPU believes have |
61 | started. Again, CPUs in dynticks idle mode may lag behind. | 62 | started. Again, offlined CPUs and CPUs in dynticks idle mode |
62 | If the "c" and "g" values are equal, this CPU has already | 63 | may lag behind. If the "c" and "g" values are equal, this CPU |
63 | reported a quiescent state for the last RCU grace period that | 64 | has already reported a quiescent state for the last RCU grace |
64 | it is aware of, otherwise, the CPU believes that it owes RCU a | 65 | period that it is aware of, otherwise, the CPU believes that it |
65 | quiescent state. | 66 | owes RCU a quiescent state. |
66 | 67 | ||
67 | o "pq" indicates that this CPU has passed through a quiescent state | 68 | o "pq" indicates that this CPU has passed through a quiescent state |
68 | for the current grace period. It is possible for "pq" to be | 69 | for the current grace period. It is possible for "pq" to be |
@@ -81,14 +82,16 @@ o "pqc" indicates which grace period the last-observed quiescent | |||
81 | the next grace period! | 82 | the next grace period! |
82 | 83 | ||
83 | o "qp" indicates that RCU still expects a quiescent state from | 84 | o "qp" indicates that RCU still expects a quiescent state from |
84 | this CPU. | 85 | this CPU. Offlined CPUs and CPUs in dyntick idle mode might |
86 | well have qp=1, which is OK: RCU is still ignoring them. | ||
85 | 87 | ||
86 | o "dt" is the current value of the dyntick counter that is incremented | 88 | o "dt" is the current value of the dyntick counter that is incremented |
87 | when entering or leaving dynticks idle state, either by the | 89 | when entering or leaving dynticks idle state, either by the |
88 | scheduler or by irq. The number after the first "/" is the | 90 | scheduler or by irq. This number is even if the CPU is in |
89 | interrupt nesting depth when in dyntick-idle state, or one | 91 | dyntick idle mode and odd otherwise. The number after the first |
90 | greater than the interrupt-nesting depth otherwise. The number | 92 | "/" is the interrupt nesting depth when in dyntick-idle state, |
91 | after the second "/" is the NMI nesting depth. | 93 | or one greater than the interrupt-nesting depth otherwise. |
94 | The number after the second "/" is the NMI nesting depth. | ||
92 | 95 | ||
93 | This field is displayed only for CONFIG_NO_HZ kernels. | 96 | This field is displayed only for CONFIG_NO_HZ kernels. |
94 | 97 | ||
@@ -100,7 +103,7 @@ o "df" is the number of times that some other CPU has forced a | |||
100 | 103 | ||
101 | o "of" is the number of times that some other CPU has forced a | 104 | o "of" is the number of times that some other CPU has forced a |
102 | quiescent state on behalf of this CPU due to this CPU being | 105 | quiescent state on behalf of this CPU due to this CPU being |
103 | offline. In a perfect world, this might neve happen, but it | 106 | offline. In a perfect world, this might never happen, but it |
104 | turns out that offlining and onlining a CPU can take several grace | 107 | turns out that offlining and onlining a CPU can take several grace |
105 | periods, and so there is likely to be an extended period of time | 108 | periods, and so there is likely to be an extended period of time |
106 | when RCU believes that the CPU is online when it really is not. | 109 | when RCU believes that the CPU is online when it really is not. |