diff options
Diffstat (limited to 'Documentation/RCU/UP.txt')
-rw-r--r-- | Documentation/RCU/UP.txt | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Documentation/RCU/UP.txt b/Documentation/RCU/UP.txt index 551a803d82a8..3bfb84b3b7db 100644 --- a/Documentation/RCU/UP.txt +++ b/Documentation/RCU/UP.txt | |||
@@ -2,11 +2,11 @@ RCU on Uniprocessor Systems | |||
2 | 2 | ||
3 | 3 | ||
4 | A common misconception is that, on UP systems, the call_rcu() primitive | 4 | A common misconception is that, on UP systems, the call_rcu() primitive |
5 | may immediately invoke its function, and that the synchronize_kernel | 5 | may immediately invoke its function, and that the synchronize_rcu() |
6 | primitive may return immediately. The basis of this misconception | 6 | primitive may return immediately. The basis of this misconception |
7 | is that since there is only one CPU, it should not be necessary to | 7 | is that since there is only one CPU, it should not be necessary to |
8 | wait for anything else to get done, since there are no other CPUs for | 8 | wait for anything else to get done, since there are no other CPUs for |
9 | anything else to be happening on. Although this approach will sort of | 9 | anything else to be happening on. Although this approach will -sort- -of- |
10 | work a surprising amount of the time, it is a very bad idea in general. | 10 | work a surprising amount of the time, it is a very bad idea in general. |
11 | This document presents two examples that demonstrate exactly how bad an | 11 | This document presents two examples that demonstrate exactly how bad an |
12 | idea this is. | 12 | idea this is. |
@@ -44,14 +44,14 @@ its arguments would cause it to fail to make the fundamental guarantee | |||
44 | underlying RCU, namely that call_rcu() defers invoking its arguments until | 44 | underlying RCU, namely that call_rcu() defers invoking its arguments until |
45 | all RCU read-side critical sections currently executing have completed. | 45 | all RCU read-side critical sections currently executing have completed. |
46 | 46 | ||
47 | Quick Quiz: why is it -not- legal to invoke synchronize_kernel() in | 47 | Quick Quiz: why is it -not- legal to invoke synchronize_rcu() in |
48 | this case? | 48 | this case? |
49 | 49 | ||
50 | 50 | ||
51 | Summary | 51 | Summary |
52 | 52 | ||
53 | Permitting call_rcu() to immediately invoke its arguments or permitting | 53 | Permitting call_rcu() to immediately invoke its arguments or permitting |
54 | synchronize_kernel() to immediately return breaks RCU, even on a UP system. | 54 | synchronize_rcu() to immediately return breaks RCU, even on a UP system. |
55 | So do not do it! Even on a UP system, the RCU infrastructure -must- | 55 | So do not do it! Even on a UP system, the RCU infrastructure -must- |
56 | respect grace periods. | 56 | respect grace periods. |
57 | 57 | ||