diff options
| author | Paul E. McKenney <paul.mckenney@linaro.org> | 2011-03-28 00:37:58 -0400 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-05-06 02:16:56 -0400 |
| commit | 2fa218d8bbcff239302f9f36e19d7187077dd636 (patch) | |
| tree | da5d352856fb52289ad2bded0ab55df7484568b6 /Documentation/RCU | |
| parent | 0ea1f2ebeb217d38770aebf91c4ecaa8e01b3305 (diff) | |
rcu: Update RCU's trace.txt documentation for new format
The trace.txt file had obsolete output for the debugfs rcu/rcudata
file, so update it.
Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'Documentation/RCU')
| -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. |
