diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-13 15:18:10 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-13 15:18:10 -0500 |
commit | 6098850e7e6978f95a958f79a645a653228d0002 (patch) | |
tree | 42e347ddd93cef05099b93157c32b80593572f02 | |
parent | f08d8bcc12de5a153e587027e77de83662eefb8a (diff) | |
parent | 72bc286b81d21404cdfecddf76b64c7163aac764 (diff) |
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU updates from Ingo Molnar:
"The main changes in this cycle are:
- Documentation updates
- RCU CPU stall-warning updates
- Torture-test updates
- Miscellaneous fixes
Size wise the biggest updates are to documentation. Excluding
documentation most of the code increase comes from a single commit
which expands debugging"
* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
srcu: Add parameters to SRCU docbook comments
doc: Rewrite confusing statement about memory barriers
memory-barriers.txt: Fix typo in pairing example
rcu/segcblist: Include rcupdate.h
rcu: Add extended-quiescent-state testing advice
rcu: Suppress lockdep false-positive ->boost_mtx complaints
rcu: Do not include rtmutex_common.h unconditionally
torture: Provide TMPDIR environment variable to specify tmpdir
rcutorture: Dump writer stack if stalled
rcutorture: Add interrupt-disable capability to stall-warning tests
rcu: Suppress RCU CPU stall warnings while dumping trace
rcu: Turn off tracing before dumping trace
rcu: Make RCU CPU stall warnings check for irq-disabled CPUs
sched,rcu: Make cond_resched() provide RCU quiescent state
sched: Make resched_cpu() unconditional
irq_work: Map irq_work_on_queue() to irq_work_on() in !SMP
rcu: Create call_rcu_tasks() kthread at boot time
rcu: Fix up pending cbs check in rcu_prepare_for_idle
memory-barriers: Rework multicopy-atomicity section
memory-barriers: Replace uses of "transitive"
...
35 files changed, 14598 insertions, 256 deletions
diff --git a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Diagram.html b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Diagram.html new file mode 100644 index 000000000000..e5b42a798ff3 --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Diagram.html | |||
@@ -0,0 +1,9 @@ | |||
1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | ||
2 | "http://www.w3.org/TR/html4/loose.dtd"> | ||
3 | <html> | ||
4 | <head><title>A Diagram of TREE_RCU's Grace-Period Memory Ordering</title> | ||
5 | <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> | ||
6 | |||
7 | <p><img src="TreeRCU-gp.svg" alt="TreeRCU-gp.svg"> | ||
8 | |||
9 | </body></html> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html new file mode 100644 index 000000000000..8651b0b4fd79 --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html | |||
@@ -0,0 +1,707 @@ | |||
1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | ||
2 | "http://www.w3.org/TR/html4/loose.dtd"> | ||
3 | <html> | ||
4 | <head><title>A Tour Through TREE_RCU's Grace-Period Memory Ordering</title> | ||
5 | <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> | ||
6 | |||
7 | <p>August 8, 2017</p> | ||
8 | <p>This article was contributed by Paul E. McKenney</p> | ||
9 | |||
10 | <h3>Introduction</h3> | ||
11 | |||
12 | <p>This document gives a rough visual overview of how Tree RCU's | ||
13 | grace-period memory ordering guarantee is provided. | ||
14 | |||
15 | <ol> | ||
16 | <li> <a href="#What Is Tree RCU's Grace Period Memory Ordering Guarantee?"> | ||
17 | What Is Tree RCU's Grace Period Memory Ordering Guarantee?</a> | ||
18 | <li> <a href="#Tree RCU Grace Period Memory Ordering Building Blocks"> | ||
19 | Tree RCU Grace Period Memory Ordering Building Blocks</a> | ||
20 | <li> <a href="#Tree RCU Grace Period Memory Ordering Components"> | ||
21 | Tree RCU Grace Period Memory Ordering Components</a> | ||
22 | <li> <a href="#Putting It All Together">Putting It All Together</a> | ||
23 | </ol> | ||
24 | |||
25 | <h3><a name="What Is Tree RCU's Grace Period Memory Ordering Guarantee?"> | ||
26 | What Is Tree RCU's Grace Period Memory Ordering Guarantee?</a></h3> | ||
27 | |||
28 | <p>RCU grace periods provide extremely strong memory-ordering guarantees | ||
29 | for non-idle non-offline code. | ||
30 | Any code that happens after the end of a given RCU grace period is guaranteed | ||
31 | to see the effects of all accesses prior to the beginning of that grace | ||
32 | period that are within RCU read-side critical sections. | ||
33 | Similarly, any code that happens before the beginning of a given RCU grace | ||
34 | period is guaranteed to see the effects of all accesses following the end | ||
35 | of that grace period that are within RCU read-side critical sections. | ||
36 | |||
37 | <p>This guarantee is particularly pervasive for <tt>synchronize_sched()</tt>, | ||
38 | for which RCU-sched read-side critical sections include any region | ||
39 | of code for which preemption is disabled. | ||
40 | Given that each individual machine instruction can be thought of as | ||
41 | an extremely small region of preemption-disabled code, one can think of | ||
42 | <tt>synchronize_sched()</tt> as <tt>smp_mb()</tt> on steroids. | ||
43 | |||
44 | <p>RCU updaters use this guarantee by splitting their updates into | ||
45 | two phases, one of which is executed before the grace period and | ||
46 | the other of which is executed after the grace period. | ||
47 | In the most common use case, phase one removes an element from | ||
48 | a linked RCU-protected data structure, and phase two frees that element. | ||
49 | For this to work, any readers that have witnessed state prior to the | ||
50 | phase-one update (in the common case, removal) must not witness state | ||
51 | following the phase-two update (in the common case, freeing). | ||
52 | |||
53 | <p>The RCU implementation provides this guarantee using a network | ||
54 | of lock-based critical sections, memory barriers, and per-CPU | ||
55 | processing, as is described in the following sections. | ||
56 | |||
57 | <h3><a name="Tree RCU Grace Period Memory Ordering Building Blocks"> | ||
58 | Tree RCU Grace Period Memory Ordering Building Blocks</a></h3> | ||
59 | |||
60 | <p>The workhorse for RCU's grace-period memory ordering is the | ||
61 | critical section for the <tt>rcu_node</tt> structure's | ||
62 | <tt>->lock</tt>. | ||
63 | These critical sections use helper functions for lock acquisition, including | ||
64 | <tt>raw_spin_lock_rcu_node()</tt>, | ||
65 | <tt>raw_spin_lock_irq_rcu_node()</tt>, and | ||
66 | <tt>raw_spin_lock_irqsave_rcu_node()</tt>. | ||
67 | Their lock-release counterparts are | ||
68 | <tt>raw_spin_unlock_rcu_node()</tt>, | ||
69 | <tt>raw_spin_unlock_irq_rcu_node()</tt>, and | ||
70 | <tt>raw_spin_unlock_irqrestore_rcu_node()</tt>, | ||
71 | respectively. | ||
72 | For completeness, a | ||
73 | <tt>raw_spin_trylock_rcu_node()</tt> | ||
74 | is also provided. | ||
75 | The key point is that the lock-acquisition functions, including | ||
76 | <tt>raw_spin_trylock_rcu_node()</tt>, all invoke | ||
77 | <tt>smp_mb__after_unlock_lock()</tt> immediately after successful | ||
78 | acquisition of the lock. | ||
79 | |||
80 | <p>Therefore, for any given <tt>rcu_node</tt> struction, any access | ||
81 | happening before one of the above lock-release functions will be seen | ||
82 | by all CPUs as happening before any access happening after a later | ||
83 | one of the above lock-acquisition functions. | ||
84 | Furthermore, any access happening before one of the | ||
85 | above lock-release function on any given CPU will be seen by all | ||
86 | CPUs as happening before any access happening after a later one | ||
87 | of the above lock-acquisition functions executing on that same CPU, | ||
88 | even if the lock-release and lock-acquisition functions are operating | ||
89 | on different <tt>rcu_node</tt> structures. | ||
90 | Tree RCU uses these two ordering guarantees to form an ordering | ||
91 | network among all CPUs that were in any way involved in the grace | ||
92 | period, including any CPUs that came online or went offline during | ||
93 | the grace period in question. | ||
94 | |||
95 | <p>The following litmus test exhibits the ordering effects of these | ||
96 | lock-acquisition and lock-release functions: | ||
97 | |||
98 | <pre> | ||
99 | 1 int x, y, z; | ||
100 | 2 | ||
101 | 3 void task0(void) | ||
102 | 4 { | ||
103 | 5 raw_spin_lock_rcu_node(rnp); | ||
104 | 6 WRITE_ONCE(x, 1); | ||
105 | 7 r1 = READ_ONCE(y); | ||
106 | 8 raw_spin_unlock_rcu_node(rnp); | ||
107 | 9 } | ||
108 | 10 | ||
109 | 11 void task1(void) | ||
110 | 12 { | ||
111 | 13 raw_spin_lock_rcu_node(rnp); | ||
112 | 14 WRITE_ONCE(y, 1); | ||
113 | 15 r2 = READ_ONCE(z); | ||
114 | 16 raw_spin_unlock_rcu_node(rnp); | ||
115 | 17 } | ||
116 | 18 | ||
117 | 19 void task2(void) | ||
118 | 20 { | ||
119 | 21 WRITE_ONCE(z, 1); | ||
120 | 22 smp_mb(); | ||
121 | 23 r3 = READ_ONCE(x); | ||
122 | 24 } | ||
123 | 25 | ||
124 | 26 WARN_ON(r1 == 0 && r2 == 0 && r3 == 0); | ||
125 | </pre> | ||
126 | |||
127 | <p>The <tt>WARN_ON()</tt> is evaluated at “the end of time”, | ||
128 | after all changes have propagated throughout the system. | ||
129 | Without the <tt>smp_mb__after_unlock_lock()</tt> provided by the | ||
130 | acquisition functions, this <tt>WARN_ON()</tt> could trigger, for example | ||
131 | on PowerPC. | ||
132 | The <tt>smp_mb__after_unlock_lock()</tt> invocations prevent this | ||
133 | <tt>WARN_ON()</tt> from triggering. | ||
134 | |||
135 | <p>This approach must be extended to include idle CPUs, which need | ||
136 | RCU's grace-period memory ordering guarantee to extend to any | ||
137 | RCU read-side critical sections preceding and following the current | ||
138 | idle sojourn. | ||
139 | This case is handled by calls to the strongly ordered | ||
140 | <tt>atomic_add_return()</tt> read-modify-write atomic operation that | ||
141 | is invoked within <tt>rcu_dynticks_eqs_enter()</tt> at idle-entry | ||
142 | time and within <tt>rcu_dynticks_eqs_exit()</tt> at idle-exit time. | ||
143 | The grace-period kthread invokes <tt>rcu_dynticks_snap()</tt> and | ||
144 | <tt>rcu_dynticks_in_eqs_since()</tt> (both of which invoke | ||
145 | an <tt>atomic_add_return()</tt> of zero) to detect idle CPUs. | ||
146 | |||
147 | <table> | ||
148 | <tr><th> </th></tr> | ||
149 | <tr><th align="left">Quick Quiz:</th></tr> | ||
150 | <tr><td> | ||
151 | But what about CPUs that remain offline for the entire | ||
152 | grace period? | ||
153 | </td></tr> | ||
154 | <tr><th align="left">Answer:</th></tr> | ||
155 | <tr><td bgcolor="#ffffff"><font color="ffffff"> | ||
156 | Such CPUs will be offline at the beginning of the grace period, | ||
157 | so the grace period won't expect quiescent states from them. | ||
158 | Races between grace-period start and CPU-hotplug operations | ||
159 | are mediated by the CPU's leaf <tt>rcu_node</tt> structure's | ||
160 | <tt>->lock</tt> as described above. | ||
161 | </font></td></tr> | ||
162 | <tr><td> </td></tr> | ||
163 | </table> | ||
164 | |||
165 | <p>The approach must be extended to handle one final case, that | ||
166 | of waking a task blocked in <tt>synchronize_rcu()</tt>. | ||
167 | This task might be affinitied to a CPU that is not yet aware that | ||
168 | the grace period has ended, and thus might not yet be subject to | ||
169 | the grace period's memory ordering. | ||
170 | Therefore, there is an <tt>smp_mb()</tt> after the return from | ||
171 | <tt>wait_for_completion()</tt> in the <tt>synchronize_rcu()</tt> | ||
172 | code path. | ||
173 | |||
174 | <table> | ||
175 | <tr><th> </th></tr> | ||
176 | <tr><th align="left">Quick Quiz:</th></tr> | ||
177 | <tr><td> | ||
178 | What? Where??? | ||
179 | I don't see any <tt>smp_mb()</tt> after the return from | ||
180 | <tt>wait_for_completion()</tt>!!! | ||
181 | </td></tr> | ||
182 | <tr><th align="left">Answer:</th></tr> | ||
183 | <tr><td bgcolor="#ffffff"><font color="ffffff"> | ||
184 | That would be because I spotted the need for that | ||
185 | <tt>smp_mb()</tt> during the creation of this documentation, | ||
186 | and it is therefore unlikely to hit mainline before v4.14. | ||
187 | Kudos to Lance Roy, Will Deacon, Peter Zijlstra, and | ||
188 | Jonathan Cameron for asking questions that sensitized me | ||
189 | to the rather elaborate sequence of events that demonstrate | ||
190 | the need for this memory barrier. | ||
191 | </font></td></tr> | ||
192 | <tr><td> </td></tr> | ||
193 | </table> | ||
194 | |||
195 | <p>Tree RCU's grace--period memory-ordering guarantees rely most | ||
196 | heavily on the <tt>rcu_node</tt> structure's <tt>->lock</tt> | ||
197 | field, so much so that it is necessary to abbreviate this pattern | ||
198 | in the diagrams in the next section. | ||
199 | For example, consider the <tt>rcu_prepare_for_idle()</tt> function | ||
200 | shown below, which is one of several functions that enforce ordering | ||
201 | of newly arrived RCU callbacks against future grace periods: | ||
202 | |||
203 | <pre> | ||
204 | 1 static void rcu_prepare_for_idle(void) | ||
205 | 2 { | ||
206 | 3 bool needwake; | ||
207 | 4 struct rcu_data *rdp; | ||
208 | 5 struct rcu_dynticks *rdtp = this_cpu_ptr(&rcu_dynticks); | ||
209 | 6 struct rcu_node *rnp; | ||
210 | 7 struct rcu_state *rsp; | ||
211 | 8 int tne; | ||
212 | 9 | ||
213 | 10 if (IS_ENABLED(CONFIG_RCU_NOCB_CPU_ALL) || | ||
214 | 11 rcu_is_nocb_cpu(smp_processor_id())) | ||
215 | 12 return; | ||
216 | 13 tne = READ_ONCE(tick_nohz_active); | ||
217 | 14 if (tne != rdtp->tick_nohz_enabled_snap) { | ||
218 | 15 if (rcu_cpu_has_callbacks(NULL)) | ||
219 | 16 invoke_rcu_core(); | ||
220 | 17 rdtp->tick_nohz_enabled_snap = tne; | ||
221 | 18 return; | ||
222 | 19 } | ||
223 | 20 if (!tne) | ||
224 | 21 return; | ||
225 | 22 if (rdtp->all_lazy && | ||
226 | 23 rdtp->nonlazy_posted != rdtp->nonlazy_posted_snap) { | ||
227 | 24 rdtp->all_lazy = false; | ||
228 | 25 rdtp->nonlazy_posted_snap = rdtp->nonlazy_posted; | ||
229 | 26 invoke_rcu_core(); | ||
230 | 27 return; | ||
231 | 28 } | ||
232 | 29 if (rdtp->last_accelerate == jiffies) | ||
233 | 30 return; | ||
234 | 31 rdtp->last_accelerate = jiffies; | ||
235 | 32 for_each_rcu_flavor(rsp) { | ||
236 | 33 rdp = this_cpu_ptr(rsp->rda); | ||
237 | 34 if (rcu_segcblist_pend_cbs(&rdp->cblist)) | ||
238 | 35 continue; | ||
239 | 36 rnp = rdp->mynode; | ||
240 | 37 raw_spin_lock_rcu_node(rnp); | ||
241 | 38 needwake = rcu_accelerate_cbs(rsp, rnp, rdp); | ||
242 | 39 raw_spin_unlock_rcu_node(rnp); | ||
243 | 40 if (needwake) | ||
244 | 41 rcu_gp_kthread_wake(rsp); | ||
245 | 42 } | ||
246 | 43 } | ||
247 | </pre> | ||
248 | |||
249 | <p>But the only part of <tt>rcu_prepare_for_idle()</tt> that really | ||
250 | matters for this discussion are lines 37–39. | ||
251 | We will therefore abbreviate this function as follows: | ||
252 | |||
253 | </p><p><img src="rcu_node-lock.svg" alt="rcu_node-lock.svg"> | ||
254 | |||
255 | <p>The box represents the <tt>rcu_node</tt> structure's <tt>->lock</tt> | ||
256 | critical section, with the double line on top representing the additional | ||
257 | <tt>smp_mb__after_unlock_lock()</tt>. | ||
258 | |||
259 | <h3><a name="Tree RCU Grace Period Memory Ordering Components"> | ||
260 | Tree RCU Grace Period Memory Ordering Components</a></h3> | ||
261 | |||
262 | <p>Tree RCU's grace-period memory-ordering guarantee is provided by | ||
263 | a number of RCU components: | ||
264 | |||
265 | <ol> | ||
266 | <li> <a href="#Callback Registry">Callback Registry</a> | ||
267 | <li> <a href="#Grace-Period Initialization">Grace-Period Initialization</a> | ||
268 | <li> <a href="#Self-Reported Quiescent States"> | ||
269 | Self-Reported Quiescent States</a> | ||
270 | <li> <a href="#Dynamic Tick Interface">Dynamic Tick Interface</a> | ||
271 | <li> <a href="#CPU-Hotplug Interface">CPU-Hotplug Interface</a> | ||
272 | <li> <a href="Forcing Quiescent States">Forcing Quiescent States</a> | ||
273 | <li> <a href="Grace-Period Cleanup">Grace-Period Cleanup</a> | ||
274 | <li> <a href="Callback Invocation">Callback Invocation</a> | ||
275 | </ol> | ||
276 | |||
277 | <p>Each of the following section looks at the corresponding component | ||
278 | in detail. | ||
279 | |||
280 | <h4><a name="Callback Registry">Callback Registry</a></h4> | ||
281 | |||
282 | <p>If RCU's grace-period guarantee is to mean anything at all, any | ||
283 | access that happens before a given invocation of <tt>call_rcu()</tt> | ||
284 | must also happen before the corresponding grace period. | ||
285 | The implementation of this portion of RCU's grace period guarantee | ||
286 | is shown in the following figure: | ||
287 | |||
288 | </p><p><img src="TreeRCU-callback-registry.svg" alt="TreeRCU-callback-registry.svg"> | ||
289 | |||
290 | <p>Because <tt>call_rcu()</tt> normally acts only on CPU-local state, | ||
291 | it provides no ordering guarantees, either for itself or for | ||
292 | phase one of the update (which again will usually be removal of | ||
293 | an element from an RCU-protected data structure). | ||
294 | It simply enqueues the <tt>rcu_head</tt> structure on a per-CPU list, | ||
295 | which cannot become associated with a grace period until a later | ||
296 | call to <tt>rcu_accelerate_cbs()</tt>, as shown in the diagram above. | ||
297 | |||
298 | <p>One set of code paths shown on the left invokes | ||
299 | <tt>rcu_accelerate_cbs()</tt> via | ||
300 | <tt>note_gp_changes()</tt>, either directly from <tt>call_rcu()</tt> (if | ||
301 | the current CPU is inundated with queued <tt>rcu_head</tt> structures) | ||
302 | or more likely from an <tt>RCU_SOFTIRQ</tt> handler. | ||
303 | Another code path in the middle is taken only in kernels built with | ||
304 | <tt>CONFIG_RCU_FAST_NO_HZ=y</tt>, which invokes | ||
305 | <tt>rcu_accelerate_cbs()</tt> via <tt>rcu_prepare_for_idle()</tt>. | ||
306 | The final code path on the right is taken only in kernels built with | ||
307 | <tt>CONFIG_HOTPLUG_CPU=y</tt>, which invokes | ||
308 | <tt>rcu_accelerate_cbs()</tt> via | ||
309 | <tt>rcu_advance_cbs()</tt>, <tt>rcu_migrate_callbacks</tt>, | ||
310 | <tt>rcutree_migrate_callbacks()</tt>, and <tt>takedown_cpu()</tt>, | ||
311 | which in turn is invoked on a surviving CPU after the outgoing | ||
312 | CPU has been completely offlined. | ||
313 | |||
314 | <p>There are a few other code paths within grace-period processing | ||
315 | that opportunistically invoke <tt>rcu_accelerate_cbs()</tt>. | ||
316 | However, either way, all of the CPU's recently queued <tt>rcu_head</tt> | ||
317 | structures are associated with a future grace-period number under | ||
318 | the protection of the CPU's lead <tt>rcu_node</tt> structure's | ||
319 | <tt>->lock</tt>. | ||
320 | In all cases, there is full ordering against any prior critical section | ||
321 | for that same <tt>rcu_node</tt> structure's <tt>->lock</tt>, and | ||
322 | also full ordering against any of the current task's or CPU's prior critical | ||
323 | sections for any <tt>rcu_node</tt> structure's <tt>->lock</tt>. | ||
324 | |||
325 | <p>The next section will show how this ordering ensures that any | ||
326 | accesses prior to the <tt>call_rcu()</tt> (particularly including phase | ||
327 | one of the update) | ||
328 | happen before the start of the corresponding grace period. | ||
329 | |||
330 | <table> | ||
331 | <tr><th> </th></tr> | ||
332 | <tr><th align="left">Quick Quiz:</th></tr> | ||
333 | <tr><td> | ||
334 | But what about <tt>synchronize_rcu()</tt>? | ||
335 | </td></tr> | ||
336 | <tr><th align="left">Answer:</th></tr> | ||
337 | <tr><td bgcolor="#ffffff"><font color="ffffff"> | ||
338 | The <tt>synchronize_rcu()</tt> passes <tt>call_rcu()</tt> | ||
339 | to <tt>wait_rcu_gp()</tt>, which invokes it. | ||
340 | So either way, it eventually comes down to <tt>call_rcu()</tt>. | ||
341 | </font></td></tr> | ||
342 | <tr><td> </td></tr> | ||
343 | </table> | ||
344 | |||
345 | <h4><a name="Grace-Period Initialization">Grace-Period Initialization</a></h4> | ||
346 | |||
347 | <p>Grace-period initialization is carried out by | ||
348 | the grace-period kernel thread, which makes several passes over the | ||
349 | <tt>rcu_node</tt> tree within the <tt>rcu_gp_init()</tt> function. | ||
350 | This means that showing the full flow of ordering through the | ||
351 | grace-period computation will require duplicating this tree. | ||
352 | If you find this confusing, please note that the state of the | ||
353 | <tt>rcu_node</tt> changes over time, just like Heraclitus's river. | ||
354 | However, to keep the <tt>rcu_node</tt> river tractable, the | ||
355 | grace-period kernel thread's traversals are presented in multiple | ||
356 | parts, starting in this section with the various phases of | ||
357 | grace-period initialization. | ||
358 | |||
359 | <p>The first ordering-related grace-period initialization action is to | ||
360 | increment the <tt>rcu_state</tt> structure's <tt>->gpnum</tt> | ||
361 | grace-period-number counter, as shown below: | ||
362 | |||
363 | </p><p><img src="TreeRCU-gp-init-1.svg" alt="TreeRCU-gp-init-1.svg" width="75%"> | ||
364 | |||
365 | <p>The actual increment is carried out using <tt>smp_store_release()</tt>, | ||
366 | which helps reject false-positive RCU CPU stall detection. | ||
367 | Note that only the root <tt>rcu_node</tt> structure is touched. | ||
368 | |||
369 | <p>The first pass through the <tt>rcu_node</tt> tree updates bitmasks | ||
370 | based on CPUs having come online or gone offline since the start of | ||
371 | the previous grace period. | ||
372 | In the common case where the number of online CPUs for this <tt>rcu_node</tt> | ||
373 | structure has not transitioned to or from zero, | ||
374 | this pass will scan only the leaf <tt>rcu_node</tt> structures. | ||
375 | However, if the number of online CPUs for a given leaf <tt>rcu_node</tt> | ||
376 | structure has transitioned from zero, | ||
377 | <tt>rcu_init_new_rnp()</tt> will be invoked for the first incoming CPU. | ||
378 | Similarly, if the number of online CPUs for a given leaf <tt>rcu_node</tt> | ||
379 | structure has transitioned to zero, | ||
380 | <tt>rcu_cleanup_dead_rnp()</tt> will be invoked for the last outgoing CPU. | ||
381 | The diagram below shows the path of ordering if the leftmost | ||
382 | <tt>rcu_node</tt> structure onlines its first CPU and if the next | ||
383 | <tt>rcu_node</tt> structure has no online CPUs | ||
384 | (or, alternatively if the leftmost <tt>rcu_node</tt> structure offlines | ||
385 | its last CPU and if the next <tt>rcu_node</tt> structure has no online CPUs). | ||
386 | |||
387 | </p><p><img src="TreeRCU-gp-init-2.svg" alt="TreeRCU-gp-init-1.svg" width="75%"> | ||
388 | |||
389 | <p>The final <tt>rcu_gp_init()</tt> pass through the <tt>rcu_node</tt> | ||
390 | tree traverses breadth-first, setting each <tt>rcu_node</tt> structure's | ||
391 | <tt>->gpnum</tt> field to the newly incremented value from the | ||
392 | <tt>rcu_state</tt> structure, as shown in the following diagram. | ||
393 | |||
394 | </p><p><img src="TreeRCU-gp-init-3.svg" alt="TreeRCU-gp-init-1.svg" width="75%"> | ||
395 | |||
396 | <p>This change will also cause each CPU's next call to | ||
397 | <tt>__note_gp_changes()</tt> | ||
398 | to notice that a new grace period has started, as described in the next | ||
399 | section. | ||
400 | But because the grace-period kthread started the grace period at the | ||
401 | root (with the increment of the <tt>rcu_state</tt> structure's | ||
402 | <tt>->gpnum</tt> field) before setting each leaf <tt>rcu_node</tt> | ||
403 | structure's <tt>->gpnum</tt> field, each CPU's observation of | ||
404 | the start of the grace period will happen after the actual start | ||
405 | of the grace period. | ||
406 | |||
407 | <table> | ||
408 | <tr><th> </th></tr> | ||
409 | <tr><th align="left">Quick Quiz:</th></tr> | ||
410 | <tr><td> | ||
411 | But what about the CPU that started the grace period? | ||
412 | Why wouldn't it see the start of the grace period right when | ||
413 | it started that grace period? | ||
414 | </td></tr> | ||
415 | <tr><th align="left">Answer:</th></tr> | ||
416 | <tr><td bgcolor="#ffffff"><font color="ffffff"> | ||
417 | In some deep philosophical and overly anthromorphized | ||
418 | sense, yes, the CPU starting the grace period is immediately | ||
419 | aware of having done so. | ||
420 | However, if we instead assume that RCU is not self-aware, | ||
421 | then even the CPU starting the grace period does not really | ||
422 | become aware of the start of this grace period until its | ||
423 | first call to <tt>__note_gp_changes()</tt>. | ||
424 | On the other hand, this CPU potentially gets early notification | ||
425 | because it invokes <tt>__note_gp_changes()</tt> during its | ||
426 | last <tt>rcu_gp_init()</tt> pass through its leaf | ||
427 | <tt>rcu_node</tt> structure. | ||
428 | </font></td></tr> | ||
429 | <tr><td> </td></tr> | ||
430 | </table> | ||
431 | |||
432 | <h4><a name="Self-Reported Quiescent States"> | ||
433 | Self-Reported Quiescent States</a></h4> | ||
434 | |||
435 | <p>When all entities that might block the grace period have reported | ||
436 | quiescent states (or as described in a later section, had quiescent | ||
437 | states reported on their behalf), the grace period can end. | ||
438 | Online non-idle CPUs report their own quiescent states, as shown | ||
439 | in the following diagram: | ||
440 | |||
441 | </p><p><img src="TreeRCU-qs.svg" alt="TreeRCU-qs.svg" width="75%"> | ||
442 | |||
443 | <p>This is for the last CPU to report a quiescent state, which signals | ||
444 | the end of the grace period. | ||
445 | Earlier quiescent states would push up the <tt>rcu_node</tt> tree | ||
446 | only until they encountered an <tt>rcu_node</tt> structure that | ||
447 | is waiting for additional quiescent states. | ||
448 | However, ordering is nevertheless preserved because some later quiescent | ||
449 | state will acquire that <tt>rcu_node</tt> structure's <tt>->lock</tt>. | ||
450 | |||
451 | <p>Any number of events can lead up to a CPU invoking | ||
452 | <tt>note_gp_changes</tt> (or alternatively, directly invoking | ||
453 | <tt>__note_gp_changes()</tt>), at which point that CPU will notice | ||
454 | the start of a new grace period while holding its leaf | ||
455 | <tt>rcu_node</tt> lock. | ||
456 | Therefore, all execution shown in this diagram happens after the | ||
457 | start of the grace period. | ||
458 | In addition, this CPU will consider any RCU read-side critical | ||
459 | section that started before the invocation of <tt>__note_gp_changes()</tt> | ||
460 | to have started before the grace period, and thus a critical | ||
461 | section that the grace period must wait on. | ||
462 | |||
463 | <table> | ||
464 | <tr><th> </th></tr> | ||
465 | <tr><th align="left">Quick Quiz:</th></tr> | ||
466 | <tr><td> | ||
467 | But a RCU read-side critical section might have started | ||
468 | after the beginning of the grace period | ||
469 | (the <tt>->gpnum++</tt> from earlier), so why should | ||
470 | the grace period wait on such a critical section? | ||
471 | </td></tr> | ||
472 | <tr><th align="left">Answer:</th></tr> | ||
473 | <tr><td bgcolor="#ffffff"><font color="ffffff"> | ||
474 | It is indeed not necessary for the grace period to wait on such | ||
475 | a critical section. | ||
476 | However, it is permissible to wait on it. | ||
477 | And it is furthermore important to wait on it, as this | ||
478 | lazy approach is far more scalable than a “big bang” | ||
479 | all-at-once grace-period start could possibly be. | ||
480 | </font></td></tr> | ||
481 | <tr><td> </td></tr> | ||
482 | </table> | ||
483 | |||
484 | <p>If the CPU does a context switch, a quiescent state will be | ||
485 | noted by <tt>rcu_node_context_switch()</tt> on the left. | ||
486 | On the other hand, if the CPU takes a scheduler-clock interrupt | ||
487 | while executing in usermode, a quiescent state will be noted by | ||
488 | <tt>rcu_check_callbacks()</tt> on the right. | ||
489 | Either way, the passage through a quiescent state will be noted | ||
490 | in a per-CPU variable. | ||
491 | |||
492 | <p>The next time an <tt>RCU_SOFTIRQ</tt> handler executes on | ||
493 | this CPU (for example, after the next scheduler-clock | ||
494 | interrupt), <tt>__rcu_process_callbacks()</tt> will invoke | ||
495 | <tt>rcu_check_quiescent_state()</tt>, which will notice the | ||
496 | recorded quiescent state, and invoke | ||
497 | <tt>rcu_report_qs_rdp()</tt>. | ||
498 | If <tt>rcu_report_qs_rdp()</tt> verifies that the quiescent state | ||
499 | really does apply to the current grace period, it invokes | ||
500 | <tt>rcu_report_rnp()</tt> which traverses up the <tt>rcu_node</tt> | ||
501 | tree as shown at the bottom of the diagram, clearing bits from | ||
502 | each <tt>rcu_node</tt> structure's <tt>->qsmask</tt> field, | ||
503 | and propagating up the tree when the result is zero. | ||
504 | |||
505 | <p>Note that traversal passes upwards out of a given <tt>rcu_node</tt> | ||
506 | structure only if the current CPU is reporting the last quiescent | ||
507 | state for the subtree headed by that <tt>rcu_node</tt> structure. | ||
508 | A key point is that if a CPU's traversal stops at a given <tt>rcu_node</tt> | ||
509 | structure, then there will be a later traversal by another CPU | ||
510 | (or perhaps the same one) that proceeds upwards | ||
511 | from that point, and the <tt>rcu_node</tt> <tt>->lock</tt> | ||
512 | guarantees that the first CPU's quiescent state happens before the | ||
513 | remainder of the second CPU's traversal. | ||
514 | Applying this line of thought repeatedly shows that all CPUs' | ||
515 | quiescent states happen before the last CPU traverses through | ||
516 | the root <tt>rcu_node</tt> structure, the “last CPU” | ||
517 | being the one that clears the last bit in the root <tt>rcu_node</tt> | ||
518 | structure's <tt>->qsmask</tt> field. | ||
519 | |||
520 | <h4><a name="Dynamic Tick Interface">Dynamic Tick Interface</a></h4> | ||
521 | |||
522 | <p>Due to energy-efficiency considerations, RCU is forbidden from | ||
523 | disturbing idle CPUs. | ||
524 | CPUs are therefore required to notify RCU when entering or leaving idle | ||
525 | state, which they do via fully ordered value-returning atomic operations | ||
526 | on a per-CPU variable. | ||
527 | The ordering effects are as shown below: | ||
528 | |||
529 | </p><p><img src="TreeRCU-dyntick.svg" alt="TreeRCU-dyntick.svg" width="50%"> | ||
530 | |||
531 | <p>The RCU grace-period kernel thread samples the per-CPU idleness | ||
532 | variable while holding the corresponding CPU's leaf <tt>rcu_node</tt> | ||
533 | structure's <tt>->lock</tt>. | ||
534 | This means that any RCU read-side critical sections that precede the | ||
535 | idle period (the oval near the top of the diagram above) will happen | ||
536 | before the end of the current grace period. | ||
537 | Similarly, the beginning of the current grace period will happen before | ||
538 | any RCU read-side critical sections that follow the | ||
539 | idle period (the oval near the bottom of the diagram above). | ||
540 | |||
541 | <p>Plumbing this into the full grace-period execution is described | ||
542 | <a href="#Forcing Quiescent States">below</a>. | ||
543 | |||
544 | <h4><a name="CPU-Hotplug Interface">CPU-Hotplug Interface</a></h4> | ||
545 | |||
546 | <p>RCU is also forbidden from disturbing offline CPUs, which might well | ||
547 | be powered off and removed from the system completely. | ||
548 | CPUs are therefore required to notify RCU of their comings and goings | ||
549 | as part of the corresponding CPU hotplug operations. | ||
550 | The ordering effects are shown below: | ||
551 | |||
552 | </p><p><img src="TreeRCU-hotplug.svg" alt="TreeRCU-hotplug.svg" width="50%"> | ||
553 | |||
554 | <p>Because CPU hotplug operations are much less frequent than idle transitions, | ||
555 | they are heavier weight, and thus acquire the CPU's leaf <tt>rcu_node</tt> | ||
556 | structure's <tt>->lock</tt> and update this structure's | ||
557 | <tt>->qsmaskinitnext</tt>. | ||
558 | The RCU grace-period kernel thread samples this mask to detect CPUs | ||
559 | having gone offline since the beginning of this grace period. | ||
560 | |||
561 | <p>Plumbing this into the full grace-period execution is described | ||
562 | <a href="#Forcing Quiescent States">below</a>. | ||
563 | |||
564 | <h4><a name="Forcing Quiescent States">Forcing Quiescent States</a></h4> | ||
565 | |||
566 | <p>As noted above, idle and offline CPUs cannot report their own | ||
567 | quiescent states, and therefore the grace-period kernel thread | ||
568 | must do the reporting on their behalf. | ||
569 | This process is called “forcing quiescent states”, it is | ||
570 | repeated every few jiffies, and its ordering effects are shown below: | ||
571 | |||
572 | </p><p><img src="TreeRCU-gp-fqs.svg" alt="TreeRCU-gp-fqs.svg" width="100%"> | ||
573 | |||
574 | <p>Each pass of quiescent state forcing is guaranteed to traverse the | ||
575 | leaf <tt>rcu_node</tt> structures, and if there are no new quiescent | ||
576 | states due to recently idled and/or offlined CPUs, then only the | ||
577 | leaves are traversed. | ||
578 | However, if there is a newly offlined CPU as illustrated on the left | ||
579 | or a newly idled CPU as illustrated on the right, the corresponding | ||
580 | quiescent state will be driven up towards the root. | ||
581 | As with self-reported quiescent states, the upwards driving stops | ||
582 | once it reaches an <tt>rcu_node</tt> structure that has quiescent | ||
583 | states outstanding from other CPUs. | ||
584 | |||
585 | <table> | ||
586 | <tr><th> </th></tr> | ||
587 | <tr><th align="left">Quick Quiz:</th></tr> | ||
588 | <tr><td> | ||
589 | The leftmost drive to root stopped before it reached | ||
590 | the root <tt>rcu_node</tt> structure, which means that | ||
591 | there are still CPUs subordinate to that structure on | ||
592 | which the current grace period is waiting. | ||
593 | Given that, how is it possible that the rightmost drive | ||
594 | to root ended the grace period? | ||
595 | </td></tr> | ||
596 | <tr><th align="left">Answer:</th></tr> | ||
597 | <tr><td bgcolor="#ffffff"><font color="ffffff"> | ||
598 | Good analysis! | ||
599 | It is in fact impossible in the absence of bugs in RCU. | ||
600 | But this diagram is complex enough as it is, so simplicity | ||
601 | overrode accuracy. | ||
602 | You can think of it as poetic license, or you can think of | ||
603 | it as misdirection that is resolved in the | ||
604 | <a href="#Putting It All Together">stitched-together diagram</a>. | ||
605 | </font></td></tr> | ||
606 | <tr><td> </td></tr> | ||
607 | </table> | ||
608 | |||
609 | <h4><a name="Grace-Period Cleanup">Grace-Period Cleanup</a></h4> | ||
610 | |||
611 | <p>Grace-period cleanup first scans the <tt>rcu_node</tt> tree | ||
612 | breadth-first setting all the <tt>->completed</tt> fields equal | ||
613 | to the number of the newly completed grace period, then it sets | ||
614 | the <tt>rcu_state</tt> structure's <tt>->completed</tt> field, | ||
615 | again to the number of the newly completed grace period. | ||
616 | The ordering effects are shown below: | ||
617 | |||
618 | </p><p><img src="TreeRCU-gp-cleanup.svg" alt="TreeRCU-gp-cleanup.svg" width="75%"> | ||
619 | |||
620 | <p>As indicated by the oval at the bottom of the diagram, once | ||
621 | grace-period cleanup is complete, the next grace period can begin. | ||
622 | |||
623 | <table> | ||
624 | <tr><th> </th></tr> | ||
625 | <tr><th align="left">Quick Quiz:</th></tr> | ||
626 | <tr><td> | ||
627 | But when precisely does the grace period end? | ||
628 | </td></tr> | ||
629 | <tr><th align="left">Answer:</th></tr> | ||
630 | <tr><td bgcolor="#ffffff"><font color="ffffff"> | ||
631 | There is no useful single point at which the grace period | ||
632 | can be said to end. | ||
633 | The earliest reasonable candidate is as soon as the last | ||
634 | CPU has reported its quiescent state, but it may be some | ||
635 | milliseconds before RCU becomes aware of this. | ||
636 | The latest reasonable candidate is once the <tt>rcu_state</tt> | ||
637 | structure's <tt>->completed</tt> field has been updated, | ||
638 | but it is quite possible that some CPUs have already completed | ||
639 | phase two of their updates by that time. | ||
640 | In short, if you are going to work with RCU, you need to | ||
641 | learn to embrace uncertainty. | ||
642 | </font></td></tr> | ||
643 | <tr><td> </td></tr> | ||
644 | </table> | ||
645 | |||
646 | |||
647 | <h4><a name="Callback Invocation">Callback Invocation</a></h4> | ||
648 | |||
649 | <p>Once a given CPU's leaf <tt>rcu_node</tt> structure's | ||
650 | <tt>->completed</tt> field has been updated, that CPU can begin | ||
651 | invoking its RCU callbacks that were waiting for this grace period | ||
652 | to end. | ||
653 | These callbacks are identified by <tt>rcu_advance_cbs()</tt>, | ||
654 | which is usually invoked by <tt>__note_gp_changes()</tt>. | ||
655 | As shown in the diagram below, this invocation can be triggered by | ||
656 | the scheduling-clock interrupt (<tt>rcu_check_callbacks()</tt> on | ||
657 | the left) or by idle entry (<tt>rcu_cleanup_after_idle()</tt> on | ||
658 | the right, but only for kernels build with | ||
659 | <tt>CONFIG_RCU_FAST_NO_HZ=y</tt>). | ||
660 | Either way, <tt>RCU_SOFTIRQ</tt> is raised, which results in | ||
661 | <tt>rcu_do_batch()</tt> invoking the callbacks, which in turn | ||
662 | allows those callbacks to carry out (either directly or indirectly | ||
663 | via wakeup) the needed phase-two processing for each update. | ||
664 | |||
665 | </p><p><img src="TreeRCU-callback-invocation.svg" alt="TreeRCU-callback-invocation.svg" width="60%"> | ||
666 | |||
667 | <p>Please note that callback invocation can also be prompted by any | ||
668 | number of corner-case code paths, for example, when a CPU notes that | ||
669 | it has excessive numbers of callbacks queued. | ||
670 | In all cases, the CPU acquires its leaf <tt>rcu_node</tt> structure's | ||
671 | <tt>->lock</tt> before invoking callbacks, which preserves the | ||
672 | required ordering against the newly completed grace period. | ||
673 | |||
674 | <p>However, if the callback function communicates to other CPUs, | ||
675 | for example, doing a wakeup, then it is that function's responsibility | ||
676 | to maintain ordering. | ||
677 | For example, if the callback function wakes up a task that runs on | ||
678 | some other CPU, proper ordering must in place in both the callback | ||
679 | function and the task being awakened. | ||
680 | To see why this is important, consider the top half of the | ||
681 | <a href="#Grace-Period Cleanup">grace-period cleanup</a> diagram. | ||
682 | The callback might be running on a CPU corresponding to the leftmost | ||
683 | leaf <tt>rcu_node</tt> structure, and awaken a task that is to run on | ||
684 | a CPU corresponding to the rightmost leaf <tt>rcu_node</tt> structure, | ||
685 | and the grace-period kernel thread might not yet have reached the | ||
686 | rightmost leaf. | ||
687 | In this case, the grace period's memory ordering might not yet have | ||
688 | reached that CPU, so again the callback function and the awakened | ||
689 | task must supply proper ordering. | ||
690 | |||
691 | <h3><a name="Putting It All Together">Putting It All Together</a></h3> | ||
692 | |||
693 | <p>A stitched-together diagram is | ||
694 | <a href="Tree-RCU-Diagram.html">here</a>. | ||
695 | |||
696 | <h3><a name="Legal Statement"> | ||
697 | Legal Statement</a></h3> | ||
698 | |||
699 | <p>This work represents the view of the author and does not necessarily | ||
700 | represent the view of IBM. | ||
701 | |||
702 | </p><p>Linux is a registered trademark of Linus Torvalds. | ||
703 | |||
704 | </p><p>Other company, product, and service names may be trademarks or | ||
705 | service marks of others. | ||
706 | |||
707 | </body></html> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-invocation.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-invocation.svg new file mode 100644 index 000000000000..832408313d93 --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-invocation.svg | |||
@@ -0,0 +1,486 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="592.12805" | ||
17 | height="469.83038" | ||
18 | viewBox="-44 -44 7874.1949 6244.9802" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-callback-invocation.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | </defs> | ||
178 | <sodipodi:namedview | ||
179 | pagecolor="#ffffff" | ||
180 | bordercolor="#666666" | ||
181 | borderopacity="1" | ||
182 | objecttolerance="10" | ||
183 | gridtolerance="10" | ||
184 | guidetolerance="10" | ||
185 | inkscape:pageopacity="0" | ||
186 | inkscape:pageshadow="2" | ||
187 | inkscape:window-width="1087" | ||
188 | inkscape:window-height="1144" | ||
189 | id="namedview208" | ||
190 | showgrid="true" | ||
191 | inkscape:zoom="1.2009216" | ||
192 | inkscape:cx="289.88715" | ||
193 | inkscape:cy="219.06265" | ||
194 | inkscape:window-x="713" | ||
195 | inkscape:window-y="28" | ||
196 | inkscape:window-maximized="0" | ||
197 | inkscape:current-layer="g3058" | ||
198 | fit-margin-top="5" | ||
199 | fit-margin-right="5" | ||
200 | fit-margin-left="5" | ||
201 | fit-margin-bottom="5"> | ||
202 | <inkscape:grid | ||
203 | type="xygrid" | ||
204 | id="grid3079" | ||
205 | empspacing="5" | ||
206 | visible="true" | ||
207 | enabled="true" | ||
208 | snapvisiblegridlinesonly="true" | ||
209 | originx="-116.00011px" | ||
210 | originy="-87.2081px" /> | ||
211 | </sodipodi:namedview> | ||
212 | <g | ||
213 | style="fill:none;stroke-width:0.025in" | ||
214 | id="g4" | ||
215 | transform="translate(-2296.0293,-2364.1166)"> | ||
216 | <path | ||
217 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
218 | d="m 6161.6776,2411.7612 0,4920.3076" | ||
219 | id="path3134-9-0-3" | ||
220 | inkscape:connector-curvature="0" | ||
221 | sodipodi:nodetypes="cc" /> | ||
222 | <path | ||
223 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
224 | d="m 6161.6776,4672.443 -2393.6631,0.5116 0,1196.8316 2393.6631,-0.5116" | ||
225 | id="path3134-9-0" | ||
226 | inkscape:connector-curvature="0" | ||
227 | sodipodi:nodetypes="cccc" /> | ||
228 | <path | ||
229 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
230 | d="m 6161.6776,4672.443 2393.6631,0.5116 0,1196.8316 -2393.6631,-0.5116" | ||
231 | id="path3134-9-0-7" | ||
232 | inkscape:connector-curvature="0" | ||
233 | sodipodi:nodetypes="cccc" /> | ||
234 | <!-- Line: box --> | ||
235 | <!-- Line: box --> | ||
236 | <!-- Line: box --> | ||
237 | <!-- Line --> | ||
238 | <!-- Arrowhead on XXXpoint 5250 8100 - 5710 5790--> | ||
239 | <!-- Line --> | ||
240 | <!-- Arrowhead on XXXpoint 4050 9300 - 4512 7140--> | ||
241 | <!-- Line --> | ||
242 | <!-- Arrowhead on XXXpoint 1040 9300 - 1502 7140--> | ||
243 | <!-- Line --> | ||
244 | <!-- Arrowhead on XXXpoint 2240 8100 - 2702 5940--> | ||
245 | <!-- Line: box --> | ||
246 | <!-- Line: box --> | ||
247 | <!-- Line --> | ||
248 | <!-- Arrowhead on XXXpoint 1350 3450 - 2444 2510--> | ||
249 | <!-- Line --> | ||
250 | <!-- Arrowhead on XXXpoint 4950 3450 - 3854 2510--> | ||
251 | <!-- Line --> | ||
252 | <!-- Arrowhead on XXXpoint 4050 6600 - 4050 4290--> | ||
253 | <!-- Line --> | ||
254 | <!-- Arrowhead on XXXpoint 1050 6600 - 1050 4290--> | ||
255 | <!-- Line --> | ||
256 | <!-- Arrowhead on XXXpoint 2250 5400 - 2250 4290--> | ||
257 | <!-- Line --> | ||
258 | <!-- Arrowhead on XXXpoint 2250 8100 - 2250 6240--> | ||
259 | <!-- Line --> | ||
260 | <!-- Arrowhead on XXXpoint 1050 9300 - 1050 7440--> | ||
261 | <!-- Line --> | ||
262 | <!-- Arrowhead on XXXpoint 4050 9300 - 4050 7440--> | ||
263 | <!-- Line --> | ||
264 | <!-- Arrowhead on XXXpoint 5250 8100 - 5250 6240--> | ||
265 | <!-- Circle --> | ||
266 | <!-- Circle --> | ||
267 | <!-- Circle --> | ||
268 | <!-- Circle --> | ||
269 | <!-- Circle --> | ||
270 | <!-- Circle --> | ||
271 | <!-- Circle --> | ||
272 | <!-- Circle --> | ||
273 | <!-- Circle --> | ||
274 | <!-- Line: box --> | ||
275 | <!-- Line: box --> | ||
276 | <!-- Line: box --> | ||
277 | <!-- Line: box --> | ||
278 | <!-- Line: box --> | ||
279 | <!-- Line: box --> | ||
280 | <!-- Line: box --> | ||
281 | <!-- Line: box --> | ||
282 | <!-- Line: box --> | ||
283 | <!-- Line: box --> | ||
284 | <!-- Line --> | ||
285 | <!-- Line --> | ||
286 | <!-- Arrowhead on XXXpoint 9300 3150 - 10860 3150--> | ||
287 | <!-- Line: box --> | ||
288 | <!-- Line --> | ||
289 | <!-- Arrowhead on XXXpoint 11400 3600 - 11400 4410--> | ||
290 | <!-- Line: box --> | ||
291 | <!-- Line --> | ||
292 | <!-- Arrowhead on XXXpoint 11400 5100 - 11400 5910--> | ||
293 | <!-- Line: box --> | ||
294 | <!-- Line --> | ||
295 | <!-- Arrowhead on XXXpoint 9900 4650 - 10860 4650--> | ||
296 | <!-- Line --> | ||
297 | <!-- Arrowhead on XXXpoint 9600 6150 - 10860 6150--> | ||
298 | <!-- Text --> | ||
299 | <!-- Text --> | ||
300 | <!-- Text --> | ||
301 | <!-- Text --> | ||
302 | <!-- Text --> | ||
303 | <!-- Text --> | ||
304 | <!-- Text --> | ||
305 | <!-- Text --> | ||
306 | <!-- Text --> | ||
307 | <!-- Text --> | ||
308 | <!-- Text --> | ||
309 | <!-- Text --> | ||
310 | <!-- Text --> | ||
311 | <!-- Text --> | ||
312 | <!-- Text --> | ||
313 | <!-- Text --> | ||
314 | <!-- Text --> | ||
315 | <!-- Text --> | ||
316 | <!-- Text --> | ||
317 | <!-- Text --> | ||
318 | <!-- Text --> | ||
319 | <!-- Text --> | ||
320 | <!-- Text --> | ||
321 | <!-- Text --> | ||
322 | <!-- Text --> | ||
323 | <!-- Text --> | ||
324 | <!-- Line --> | ||
325 | <!-- Arrowhead on XXXpoint 5250 5400 - 5250 4290--> | ||
326 | <!-- Line: box --> | ||
327 | <!-- Line: box --> | ||
328 | <!-- Line: box --> | ||
329 | <!-- Line: box --> | ||
330 | <!-- Text --> | ||
331 | <!-- Text --> | ||
332 | <!-- Text --> | ||
333 | <!-- Text --> | ||
334 | <!-- Text --> | ||
335 | <rect | ||
336 | x="2333.5203" | ||
337 | y="5109.5566" | ||
338 | width="2844.0974" | ||
339 | height="360.77411" | ||
340 | rx="0" | ||
341 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.0005789, 60.00115781;stroke-dashoffset:0" | ||
342 | id="rect118-3" | ||
343 | ry="0" /> | ||
344 | <text | ||
345 | xml:space="preserve" | ||
346 | x="2562.135" | ||
347 | y="5357.9937" | ||
348 | font-style="normal" | ||
349 | font-weight="bold" | ||
350 | font-size="192" | ||
351 | id="text202-7-5" | ||
352 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_check_callbacks()</text> | ||
353 | <rect | ||
354 | x="7069.6187" | ||
355 | y="5087.4678" | ||
356 | width="2975.115" | ||
357 | height="382.86298" | ||
358 | rx="0" | ||
359 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057902, 60.00115804;stroke-dashoffset:0" | ||
360 | id="rect118-36" | ||
361 | ry="0" /> | ||
362 | <text | ||
363 | xml:space="preserve" | ||
364 | x="7165.2524" | ||
365 | y="5333.4927" | ||
366 | font-style="normal" | ||
367 | font-weight="bold" | ||
368 | font-size="192" | ||
369 | id="text202-7-9-6" | ||
370 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_cleanup_after_idle()</text> | ||
371 | <g | ||
372 | id="g3058" | ||
373 | transform="translate(-53.192514,-2819.2063)"> | ||
374 | <text | ||
375 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier" | ||
376 | id="text202" | ||
377 | font-size="192" | ||
378 | font-weight="bold" | ||
379 | font-style="normal" | ||
380 | y="6532.0293" | ||
381 | x="5073.3374" | ||
382 | xml:space="preserve">rcu_advance_cbs()</text> | ||
383 | <rect | ||
384 | id="rect112" | ||
385 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
386 | rx="0" | ||
387 | height="1370.8721" | ||
388 | width="2809.1992" | ||
389 | y="5650.2598" | ||
390 | x="4800.2563" /> | ||
391 | <rect | ||
392 | id="rect112-3" | ||
393 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
394 | rx="0" | ||
395 | height="1294.8468" | ||
396 | width="2809.1992" | ||
397 | y="5726.2852" | ||
398 | x="4800.2563" /> | ||
399 | <text | ||
400 | sodipodi:linespacing="125%" | ||
401 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
402 | id="text202-7-5-1-2-3-7" | ||
403 | font-size="192" | ||
404 | font-weight="bold" | ||
405 | font-style="normal" | ||
406 | y="6961.395" | ||
407 | x="7220.106" | ||
408 | xml:space="preserve"><tspan | ||
409 | id="tspan3104-6-5" | ||
410 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Leaf</tspan></text> | ||
411 | <text | ||
412 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
413 | id="text202-3" | ||
414 | font-size="192" | ||
415 | font-weight="bold" | ||
416 | font-style="normal" | ||
417 | y="6321.9248" | ||
418 | x="5073.3374" | ||
419 | xml:space="preserve">__note_gp_changes()</text> | ||
420 | </g> | ||
421 | <g | ||
422 | id="g3049" | ||
423 | transform="translate(26.596257,6090.5512)"> | ||
424 | <path | ||
425 | transform="matrix(13.298129,0,0,13.298129,1872.6808,-2726.4833)" | ||
426 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
427 | sodipodi:ry="39.550262" | ||
428 | sodipodi:rx="65.917107" | ||
429 | sodipodi:cy="345.54001" | ||
430 | sodipodi:cx="319.379" | ||
431 | id="path3084-3" | ||
432 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
433 | sodipodi:type="arc" /> | ||
434 | <text | ||
435 | sodipodi:linespacing="125%" | ||
436 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
437 | id="text202-7-5-1-2-6" | ||
438 | font-size="192" | ||
439 | font-weight="bold" | ||
440 | font-style="normal" | ||
441 | y="1785.2073" | ||
442 | x="5717.4517" | ||
443 | xml:space="preserve"><tspan | ||
444 | id="tspan3104-7" | ||
445 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Phase Two</tspan></text> | ||
446 | <text | ||
447 | sodipodi:linespacing="125%" | ||
448 | id="text3110-5" | ||
449 | y="2005.6624" | ||
450 | x="6119.668" | ||
451 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
452 | xml:space="preserve"><tspan | ||
453 | y="2005.6624" | ||
454 | x="6119.668" | ||
455 | id="tspan3112-3" | ||
456 | sodipodi:role="line">of Update</tspan></text> | ||
457 | </g> | ||
458 | <rect | ||
459 | x="5097.8271" | ||
460 | y="6268.2183" | ||
461 | width="1994.7195" | ||
462 | height="664.90662" | ||
463 | rx="0" | ||
464 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057858, 60.00115716;stroke-dashoffset:0" | ||
465 | id="rect118-36-3" | ||
466 | ry="0" /> | ||
467 | <text | ||
468 | xml:space="preserve" | ||
469 | x="5363.7886" | ||
470 | y="6534.1812" | ||
471 | font-style="normal" | ||
472 | font-weight="bold" | ||
473 | font-size="192" | ||
474 | id="text202-7-9-6-6" | ||
475 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">RCU_SOFTIRQ</text> | ||
476 | <text | ||
477 | xml:space="preserve" | ||
478 | x="5363.7886" | ||
479 | y="6800.1436" | ||
480 | font-style="normal" | ||
481 | font-weight="bold" | ||
482 | font-size="192" | ||
483 | id="text202-7-9-6-6-7" | ||
484 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_do_batch()</text> | ||
485 | </g> | ||
486 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-registry.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-registry.svg new file mode 100644 index 000000000000..7ac6f9269806 --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-callback-registry.svg | |||
@@ -0,0 +1,655 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="816.04761" | ||
17 | height="636.55627" | ||
18 | viewBox="-44 -44 10851.906 8461.0989" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-callback-registry.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | </defs> | ||
178 | <sodipodi:namedview | ||
179 | pagecolor="#ffffff" | ||
180 | bordercolor="#666666" | ||
181 | borderopacity="1" | ||
182 | objecttolerance="10" | ||
183 | gridtolerance="10" | ||
184 | guidetolerance="10" | ||
185 | inkscape:pageopacity="0" | ||
186 | inkscape:pageshadow="2" | ||
187 | inkscape:window-width="1087" | ||
188 | inkscape:window-height="1144" | ||
189 | id="namedview208" | ||
190 | showgrid="true" | ||
191 | inkscape:zoom="1.2009216" | ||
192 | inkscape:cx="408.02381" | ||
193 | inkscape:cy="254.38856" | ||
194 | inkscape:window-x="713" | ||
195 | inkscape:window-y="28" | ||
196 | inkscape:window-maximized="0" | ||
197 | inkscape:current-layer="g4" | ||
198 | fit-margin-top="5" | ||
199 | fit-margin-right="5" | ||
200 | fit-margin-left="5" | ||
201 | fit-margin-bottom="5"> | ||
202 | <inkscape:grid | ||
203 | type="xygrid" | ||
204 | id="grid3079" | ||
205 | empspacing="5" | ||
206 | visible="true" | ||
207 | enabled="true" | ||
208 | snapvisiblegridlinesonly="true" | ||
209 | originx="5.2596966e-08px" | ||
210 | originy="-4.5963961e-06px" /> | ||
211 | </sodipodi:namedview> | ||
212 | <g | ||
213 | style="fill:none;stroke-width:0.025in" | ||
214 | id="g4" | ||
215 | transform="translate(-753.44492,-1306.6788)"> | ||
216 | <path | ||
217 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
218 | d="m 6161.6776,2411.7612 0,6117.1391" | ||
219 | id="path3134-9-0-3" | ||
220 | inkscape:connector-curvature="0" | ||
221 | sodipodi:nodetypes="cc" /> | ||
222 | <path | ||
223 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
224 | d="m 6161.6776,3342.6302 -3856.4573,0 10.6979,5757.1962 2918.1436,-2e-4" | ||
225 | id="path3134-9-0" | ||
226 | inkscape:connector-curvature="0" | ||
227 | sodipodi:nodetypes="cccc" /> | ||
228 | <path | ||
229 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
230 | d="m 6161.6776,3342.6302 3856.4574,0 -12.188,5757.1963 -2918.1436,-3e-4" | ||
231 | id="path3134-9-0-7" | ||
232 | inkscape:connector-curvature="0" | ||
233 | sodipodi:nodetypes="cccc" /> | ||
234 | <!-- Line: box --> | ||
235 | <!-- Line: box --> | ||
236 | <!-- Line: box --> | ||
237 | <!-- Line --> | ||
238 | <!-- Arrowhead on XXXpoint 5250 8100 - 5710 5790--> | ||
239 | <!-- Line --> | ||
240 | <!-- Arrowhead on XXXpoint 4050 9300 - 4512 7140--> | ||
241 | <!-- Line --> | ||
242 | <!-- Arrowhead on XXXpoint 1040 9300 - 1502 7140--> | ||
243 | <!-- Line --> | ||
244 | <!-- Arrowhead on XXXpoint 2240 8100 - 2702 5940--> | ||
245 | <!-- Line: box --> | ||
246 | <!-- Line: box --> | ||
247 | <!-- Line --> | ||
248 | <!-- Arrowhead on XXXpoint 1350 3450 - 2444 2510--> | ||
249 | <!-- Line --> | ||
250 | <!-- Arrowhead on XXXpoint 4950 3450 - 3854 2510--> | ||
251 | <!-- Line --> | ||
252 | <!-- Arrowhead on XXXpoint 4050 6600 - 4050 4290--> | ||
253 | <!-- Line --> | ||
254 | <!-- Arrowhead on XXXpoint 1050 6600 - 1050 4290--> | ||
255 | <!-- Line --> | ||
256 | <!-- Arrowhead on XXXpoint 2250 5400 - 2250 4290--> | ||
257 | <!-- Line --> | ||
258 | <!-- Arrowhead on XXXpoint 2250 8100 - 2250 6240--> | ||
259 | <!-- Line --> | ||
260 | <!-- Arrowhead on XXXpoint 1050 9300 - 1050 7440--> | ||
261 | <!-- Line --> | ||
262 | <!-- Arrowhead on XXXpoint 4050 9300 - 4050 7440--> | ||
263 | <!-- Line --> | ||
264 | <!-- Arrowhead on XXXpoint 5250 8100 - 5250 6240--> | ||
265 | <!-- Circle --> | ||
266 | <!-- Circle --> | ||
267 | <!-- Circle --> | ||
268 | <!-- Circle --> | ||
269 | <!-- Circle --> | ||
270 | <!-- Circle --> | ||
271 | <!-- Circle --> | ||
272 | <!-- Circle --> | ||
273 | <!-- Circle --> | ||
274 | <!-- Line: box --> | ||
275 | <!-- Line: box --> | ||
276 | <!-- Line: box --> | ||
277 | <!-- Line: box --> | ||
278 | <!-- Line: box --> | ||
279 | <!-- Line: box --> | ||
280 | <!-- Line: box --> | ||
281 | <!-- Line: box --> | ||
282 | <!-- Line: box --> | ||
283 | <!-- Line: box --> | ||
284 | <!-- Line --> | ||
285 | <!-- Line --> | ||
286 | <!-- Arrowhead on XXXpoint 9300 3150 - 10860 3150--> | ||
287 | <!-- Line: box --> | ||
288 | <!-- Line --> | ||
289 | <!-- Arrowhead on XXXpoint 11400 3600 - 11400 4410--> | ||
290 | <!-- Line: box --> | ||
291 | <!-- Line --> | ||
292 | <!-- Arrowhead on XXXpoint 11400 5100 - 11400 5910--> | ||
293 | <!-- Line: box --> | ||
294 | <!-- Line --> | ||
295 | <!-- Arrowhead on XXXpoint 9900 4650 - 10860 4650--> | ||
296 | <!-- Line --> | ||
297 | <!-- Arrowhead on XXXpoint 9600 6150 - 10860 6150--> | ||
298 | <!-- Text --> | ||
299 | <!-- Text --> | ||
300 | <!-- Text --> | ||
301 | <!-- Text --> | ||
302 | <!-- Text --> | ||
303 | <!-- Text --> | ||
304 | <!-- Text --> | ||
305 | <!-- Text --> | ||
306 | <!-- Text --> | ||
307 | <!-- Text --> | ||
308 | <!-- Text --> | ||
309 | <!-- Text --> | ||
310 | <!-- Text --> | ||
311 | <!-- Text --> | ||
312 | <!-- Text --> | ||
313 | <!-- Text --> | ||
314 | <!-- Text --> | ||
315 | <!-- Text --> | ||
316 | <!-- Text --> | ||
317 | <!-- Text --> | ||
318 | <!-- Text --> | ||
319 | <!-- Text --> | ||
320 | <!-- Text --> | ||
321 | <!-- Text --> | ||
322 | <!-- Text --> | ||
323 | <!-- Text --> | ||
324 | <!-- Line --> | ||
325 | <!-- Arrowhead on XXXpoint 5250 5400 - 5250 4290--> | ||
326 | <!-- Line: box --> | ||
327 | <!-- Line: box --> | ||
328 | <!-- Line: box --> | ||
329 | <!-- Line: box --> | ||
330 | <!-- Text --> | ||
331 | <!-- Text --> | ||
332 | <!-- Text --> | ||
333 | <!-- Text --> | ||
334 | <!-- Text --> | ||
335 | <rect | ||
336 | x="4544.7305" | ||
337 | y="4603.417" | ||
338 | width="3240.0088" | ||
339 | height="2650.6289" | ||
340 | rx="0" | ||
341 | style="stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115769;stroke-dashoffset:0" | ||
342 | id="rect118" | ||
343 | ry="0" /> | ||
344 | <text | ||
345 | xml:space="preserve" | ||
346 | x="5073.3374" | ||
347 | y="6372.4521" | ||
348 | font-style="normal" | ||
349 | font-weight="bold" | ||
350 | font-size="192" | ||
351 | id="text202" | ||
352 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">rcu_accelerate_cbs()</text> | ||
353 | <g | ||
354 | id="g3107" | ||
355 | transform="translate(2715.7065,4700.8888)"> | ||
356 | <rect | ||
357 | id="rect112" | ||
358 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
359 | rx="0" | ||
360 | height="1370.8721" | ||
361 | width="2809.1992" | ||
362 | y="949.37109" | ||
363 | x="2084.55" /> | ||
364 | <rect | ||
365 | id="rect112-3" | ||
366 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
367 | rx="0" | ||
368 | height="1294.8468" | ||
369 | width="2809.1992" | ||
370 | y="1025.3964" | ||
371 | x="2084.55" /> | ||
372 | </g> | ||
373 | <text | ||
374 | xml:space="preserve" | ||
375 | x="4773.3452" | ||
376 | y="4825.2578" | ||
377 | font-style="normal" | ||
378 | font-weight="bold" | ||
379 | font-size="192" | ||
380 | id="text202-7" | ||
381 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_prepare_for_idle()</text> | ||
382 | <rect | ||
383 | x="790.93585" | ||
384 | y="4630.8252" | ||
385 | width="3240.0088" | ||
386 | height="2650.6289" | ||
387 | rx="0" | ||
388 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.0005789, 60.00115781;stroke-dashoffset:0" | ||
389 | id="rect118-3" | ||
390 | ry="0" /> | ||
391 | <text | ||
392 | xml:space="preserve" | ||
393 | x="1319.5447" | ||
394 | y="6639.2261" | ||
395 | font-style="normal" | ||
396 | font-weight="bold" | ||
397 | font-size="192" | ||
398 | id="text202-6" | ||
399 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_accelerate_cbs()</text> | ||
400 | <g | ||
401 | style="fill:none;stroke-width:0.025in" | ||
402 | id="g3107-7" | ||
403 | transform="translate(-1038.0776,4728.2971)"> | ||
404 | <rect | ||
405 | id="rect112-5" | ||
406 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
407 | rx="0" | ||
408 | height="1370.8721" | ||
409 | width="2809.1992" | ||
410 | y="949.37109" | ||
411 | x="2084.55" /> | ||
412 | <rect | ||
413 | id="rect112-3-3" | ||
414 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
415 | rx="0" | ||
416 | height="1294.8468" | ||
417 | width="2809.1992" | ||
418 | y="1025.3964" | ||
419 | x="2084.55" /> | ||
420 | </g> | ||
421 | <text | ||
422 | xml:space="preserve" | ||
423 | x="1019.5512" | ||
424 | y="4852.666" | ||
425 | font-style="normal" | ||
426 | font-weight="bold" | ||
427 | font-size="192" | ||
428 | id="text202-7-5" | ||
429 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">note_gp_changes()</text> | ||
430 | <text | ||
431 | xml:space="preserve" | ||
432 | x="1319.5447" | ||
433 | y="6376.6328" | ||
434 | font-style="normal" | ||
435 | font-weight="bold" | ||
436 | font-size="192" | ||
437 | id="text202-6-6" | ||
438 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_advance_cbs()</text> | ||
439 | <text | ||
440 | xml:space="preserve" | ||
441 | x="1340.6649" | ||
442 | y="6111.4473" | ||
443 | font-style="normal" | ||
444 | font-weight="bold" | ||
445 | font-size="192" | ||
446 | id="text202-6-6-2" | ||
447 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">__note_gp_changes()</text> | ||
448 | <rect | ||
449 | x="5422.6279" | ||
450 | y="3041.8311" | ||
451 | width="1480.4871" | ||
452 | height="379.24637" | ||
453 | rx="0" | ||
454 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.0005789, 60.00115794;stroke-dashoffset:0" | ||
455 | id="rect118-3-9" | ||
456 | ry="0" /> | ||
457 | <text | ||
458 | xml:space="preserve" | ||
459 | x="5607.2734" | ||
460 | y="3283.3892" | ||
461 | font-style="normal" | ||
462 | font-weight="bold" | ||
463 | font-size="192" | ||
464 | id="text202-7-5-1" | ||
465 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">call_rcu()</text> | ||
466 | <path | ||
467 | sodipodi:type="arc" | ||
468 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
469 | id="path3084" | ||
470 | sodipodi:cx="319.379" | ||
471 | sodipodi:cy="345.54001" | ||
472 | sodipodi:rx="65.917107" | ||
473 | sodipodi:ry="39.550262" | ||
474 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
475 | transform="matrix(13.298129,0,0,13.298129,1915.7286,4523.6528)" /> | ||
476 | <text | ||
477 | xml:space="preserve" | ||
478 | x="5853.9238" | ||
479 | y="8902.3623" | ||
480 | font-style="normal" | ||
481 | font-weight="bold" | ||
482 | font-size="192" | ||
483 | id="text202-7-5-1-2" | ||
484 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
485 | sodipodi:linespacing="125%"><tspan | ||
486 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
487 | id="tspan3104">Wake up</tspan></text> | ||
488 | <text | ||
489 | xml:space="preserve" | ||
490 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
491 | x="6165.7158" | ||
492 | y="9122.8174" | ||
493 | id="text3110" | ||
494 | sodipodi:linespacing="125%"><tspan | ||
495 | sodipodi:role="line" | ||
496 | id="tspan3112" | ||
497 | x="6165.7158" | ||
498 | y="9122.8174">grace-period</tspan></text> | ||
499 | <text | ||
500 | xml:space="preserve" | ||
501 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
502 | x="6162.8716" | ||
503 | y="9364.3564" | ||
504 | id="text3114" | ||
505 | sodipodi:linespacing="125%"><tspan | ||
506 | sodipodi:role="line" | ||
507 | id="tspan3116" | ||
508 | x="6162.8716" | ||
509 | y="9364.3564">kernel thread</tspan></text> | ||
510 | <rect | ||
511 | x="8239.8516" | ||
512 | y="4608.7363" | ||
513 | width="3240.0088" | ||
514 | height="2650.6289" | ||
515 | rx="0" | ||
516 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057902, 60.00115804;stroke-dashoffset:0" | ||
517 | id="rect118-36" | ||
518 | ry="0" /> | ||
519 | <text | ||
520 | xml:space="preserve" | ||
521 | x="8768.4678" | ||
522 | y="6484.1562" | ||
523 | font-style="normal" | ||
524 | font-weight="bold" | ||
525 | font-size="192" | ||
526 | id="text202-75" | ||
527 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_accelerate_cbs()</text> | ||
528 | <g | ||
529 | style="fill:none;stroke-width:0.025in" | ||
530 | id="g3107-3" | ||
531 | transform="translate(6410.833,4706.2127)"> | ||
532 | <rect | ||
533 | id="rect112-56" | ||
534 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
535 | rx="0" | ||
536 | height="1370.8721" | ||
537 | width="2809.1992" | ||
538 | y="949.37109" | ||
539 | x="2084.55" /> | ||
540 | <rect | ||
541 | id="rect112-3-2" | ||
542 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
543 | rx="0" | ||
544 | height="1294.8468" | ||
545 | width="2809.1992" | ||
546 | y="1025.3964" | ||
547 | x="2084.55" /> | ||
548 | </g> | ||
549 | <text | ||
550 | xml:space="preserve" | ||
551 | x="8329.5352" | ||
552 | y="4830.5771" | ||
553 | font-style="normal" | ||
554 | font-weight="bold" | ||
555 | font-size="192" | ||
556 | id="text202-7-9" | ||
557 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">takedown_cpu()</text> | ||
558 | <text | ||
559 | xml:space="preserve" | ||
560 | x="8335.4873" | ||
561 | y="5094.127" | ||
562 | font-style="normal" | ||
563 | font-weight="bold" | ||
564 | font-size="192" | ||
565 | id="text202-7-9-6" | ||
566 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcutree_migrate_callbacks()</text> | ||
567 | <text | ||
568 | xml:space="preserve" | ||
569 | x="8335.4873" | ||
570 | y="5357.1006" | ||
571 | font-style="normal" | ||
572 | font-weight="bold" | ||
573 | font-size="192" | ||
574 | id="text202-7-9-6-0" | ||
575 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_migrate_callbacks()</text> | ||
576 | <text | ||
577 | xml:space="preserve" | ||
578 | x="8768.4678" | ||
579 | y="6224.9038" | ||
580 | font-style="normal" | ||
581 | font-weight="bold" | ||
582 | font-size="192" | ||
583 | id="text202-6-6-6" | ||
584 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_advance_cbs()</text> | ||
585 | <text | ||
586 | xml:space="preserve" | ||
587 | x="3467.9963" | ||
588 | y="6987.9912" | ||
589 | font-style="normal" | ||
590 | font-weight="bold" | ||
591 | font-size="192" | ||
592 | id="text202-7-5-1-2-3" | ||
593 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
594 | sodipodi:linespacing="125%"><tspan | ||
595 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
596 | id="tspan3104-6">Leaf</tspan></text> | ||
597 | <text | ||
598 | xml:space="preserve" | ||
599 | x="7220.106" | ||
600 | y="6961.395" | ||
601 | font-style="normal" | ||
602 | font-weight="bold" | ||
603 | font-size="192" | ||
604 | id="text202-7-5-1-2-3-7" | ||
605 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
606 | sodipodi:linespacing="125%"><tspan | ||
607 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
608 | id="tspan3104-6-5">Leaf</tspan></text> | ||
609 | <text | ||
610 | xml:space="preserve" | ||
611 | x="10905.331" | ||
612 | y="6961.395" | ||
613 | font-style="normal" | ||
614 | font-weight="bold" | ||
615 | font-size="192" | ||
616 | id="text202-7-5-1-2-3-7-3" | ||
617 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
618 | sodipodi:linespacing="125%"><tspan | ||
619 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
620 | id="tspan3104-6-5-5">Leaf</tspan></text> | ||
621 | <path | ||
622 | sodipodi:type="arc" | ||
623 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
624 | id="path3084-3" | ||
625 | sodipodi:cx="319.379" | ||
626 | sodipodi:cy="345.54001" | ||
627 | sodipodi:rx="65.917107" | ||
628 | sodipodi:ry="39.550262" | ||
629 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
630 | transform="matrix(13.298129,0,0,13.298129,1872.6808,-2726.4833)" /> | ||
631 | <text | ||
632 | xml:space="preserve" | ||
633 | x="5717.4517" | ||
634 | y="1785.2073" | ||
635 | font-style="normal" | ||
636 | font-weight="bold" | ||
637 | font-size="192" | ||
638 | id="text202-7-5-1-2-6" | ||
639 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
640 | sodipodi:linespacing="125%"><tspan | ||
641 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
642 | id="tspan3104-7">Phase One</tspan></text> | ||
643 | <text | ||
644 | xml:space="preserve" | ||
645 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
646 | x="6119.668" | ||
647 | y="2005.6624" | ||
648 | id="text3110-5" | ||
649 | sodipodi:linespacing="125%"><tspan | ||
650 | sodipodi:role="line" | ||
651 | id="tspan3112-3" | ||
652 | x="6119.668" | ||
653 | y="2005.6624">of Update</tspan></text> | ||
654 | </g> | ||
655 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg new file mode 100644 index 000000000000..423df00c4df9 --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg | |||
@@ -0,0 +1,700 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="670.61804" | ||
17 | height="557.16394" | ||
18 | viewBox="-44 -44 8917.9652 7405.8166" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-dyntick.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | <marker | ||
178 | inkscape:stockid="Arrow2Lend" | ||
179 | orient="auto" | ||
180 | refY="0" | ||
181 | refX="0" | ||
182 | id="Arrow2Lend-3" | ||
183 | style="overflow:visible"> | ||
184 | <path | ||
185 | id="path3946-1" | ||
186 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
187 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
188 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
189 | inkscape:connector-curvature="0" /> | ||
190 | </marker> | ||
191 | <marker | ||
192 | inkscape:stockid="Arrow2Lend" | ||
193 | orient="auto" | ||
194 | refY="0" | ||
195 | refX="0" | ||
196 | id="Arrow2Lend-4" | ||
197 | style="overflow:visible"> | ||
198 | <path | ||
199 | id="path3946-7" | ||
200 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
201 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
202 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
203 | inkscape:connector-curvature="0" /> | ||
204 | </marker> | ||
205 | <marker | ||
206 | inkscape:stockid="Arrow2Lend" | ||
207 | orient="auto" | ||
208 | refY="0" | ||
209 | refX="0" | ||
210 | id="marker4880" | ||
211 | style="overflow:visible"> | ||
212 | <path | ||
213 | id="path4882" | ||
214 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
215 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
216 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
217 | inkscape:connector-curvature="0" /> | ||
218 | </marker> | ||
219 | <marker | ||
220 | inkscape:stockid="Arrow2Lend" | ||
221 | orient="auto" | ||
222 | refY="0" | ||
223 | refX="0" | ||
224 | id="Arrow2Lend-5" | ||
225 | style="overflow:visible"> | ||
226 | <path | ||
227 | id="path3946-0" | ||
228 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
229 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
230 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
231 | inkscape:connector-curvature="0" /> | ||
232 | </marker> | ||
233 | <marker | ||
234 | inkscape:stockid="Arrow2Lend" | ||
235 | orient="auto" | ||
236 | refY="0" | ||
237 | refX="0" | ||
238 | id="Arrow2Lend-6" | ||
239 | style="overflow:visible"> | ||
240 | <path | ||
241 | id="path3946-10" | ||
242 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
243 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
244 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
245 | inkscape:connector-curvature="0" /> | ||
246 | </marker> | ||
247 | <marker | ||
248 | inkscape:stockid="Arrow1Send" | ||
249 | orient="auto" | ||
250 | refY="0" | ||
251 | refX="0" | ||
252 | id="Arrow1Send-36" | ||
253 | style="overflow:visible"> | ||
254 | <path | ||
255 | id="path3940-0" | ||
256 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
257 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
258 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
259 | inkscape:connector-curvature="0" /> | ||
260 | </marker> | ||
261 | <marker | ||
262 | inkscape:stockid="Arrow1Send" | ||
263 | orient="auto" | ||
264 | refY="0" | ||
265 | refX="0" | ||
266 | id="Arrow1Send-6" | ||
267 | style="overflow:visible"> | ||
268 | <path | ||
269 | id="path3940-26" | ||
270 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
271 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
272 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
273 | inkscape:connector-curvature="0" /> | ||
274 | </marker> | ||
275 | <marker | ||
276 | inkscape:stockid="Arrow1Send" | ||
277 | orient="auto" | ||
278 | refY="0" | ||
279 | refX="0" | ||
280 | id="Arrow1Send-8" | ||
281 | style="overflow:visible"> | ||
282 | <path | ||
283 | id="path3940-7" | ||
284 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
285 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
286 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
287 | inkscape:connector-curvature="0" /> | ||
288 | </marker> | ||
289 | <marker | ||
290 | inkscape:stockid="Arrow1Send" | ||
291 | orient="auto" | ||
292 | refY="0" | ||
293 | refX="0" | ||
294 | id="Arrow1Send-367" | ||
295 | style="overflow:visible"> | ||
296 | <path | ||
297 | id="path3940-5" | ||
298 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
299 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
300 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
301 | inkscape:connector-curvature="0" /> | ||
302 | </marker> | ||
303 | <marker | ||
304 | inkscape:stockid="Arrow2Lend" | ||
305 | orient="auto" | ||
306 | refY="0" | ||
307 | refX="0" | ||
308 | id="Arrow2Lend-56" | ||
309 | style="overflow:visible"> | ||
310 | <path | ||
311 | id="path3946-2" | ||
312 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
313 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
314 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
315 | inkscape:connector-curvature="0" /> | ||
316 | </marker> | ||
317 | <marker | ||
318 | inkscape:stockid="Arrow2Lend" | ||
319 | orient="auto" | ||
320 | refY="0" | ||
321 | refX="0" | ||
322 | id="marker3081" | ||
323 | style="overflow:visible"> | ||
324 | <path | ||
325 | id="path3083" | ||
326 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
327 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
328 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
329 | inkscape:connector-curvature="0" /> | ||
330 | </marker> | ||
331 | <marker | ||
332 | inkscape:stockid="Arrow2Lend" | ||
333 | orient="auto" | ||
334 | refY="0" | ||
335 | refX="0" | ||
336 | id="marker3085" | ||
337 | style="overflow:visible"> | ||
338 | <path | ||
339 | id="path3087" | ||
340 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
341 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
342 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
343 | inkscape:connector-curvature="0" /> | ||
344 | </marker> | ||
345 | <marker | ||
346 | inkscape:stockid="Arrow2Lend" | ||
347 | orient="auto" | ||
348 | refY="0" | ||
349 | refX="0" | ||
350 | id="marker3089" | ||
351 | style="overflow:visible"> | ||
352 | <path | ||
353 | id="path3091" | ||
354 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
355 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
356 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
357 | inkscape:connector-curvature="0" /> | ||
358 | </marker> | ||
359 | <marker | ||
360 | inkscape:stockid="Arrow2Lend" | ||
361 | orient="auto" | ||
362 | refY="0" | ||
363 | refX="0" | ||
364 | id="marker3093" | ||
365 | style="overflow:visible"> | ||
366 | <path | ||
367 | id="path3095" | ||
368 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
369 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
370 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
371 | inkscape:connector-curvature="0" /> | ||
372 | </marker> | ||
373 | <marker | ||
374 | inkscape:stockid="Arrow2Lend" | ||
375 | orient="auto" | ||
376 | refY="0" | ||
377 | refX="0" | ||
378 | id="marker3097" | ||
379 | style="overflow:visible"> | ||
380 | <path | ||
381 | id="path3099" | ||
382 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
383 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
384 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
385 | inkscape:connector-curvature="0" /> | ||
386 | </marker> | ||
387 | <marker | ||
388 | inkscape:stockid="Arrow1Send" | ||
389 | orient="auto" | ||
390 | refY="0" | ||
391 | refX="0" | ||
392 | id="Arrow1Send-9" | ||
393 | style="overflow:visible"> | ||
394 | <path | ||
395 | id="path3940-1" | ||
396 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
397 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
398 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
399 | inkscape:connector-curvature="0" /> | ||
400 | </marker> | ||
401 | <marker | ||
402 | inkscape:stockid="Arrow1Send" | ||
403 | orient="auto" | ||
404 | refY="0" | ||
405 | refX="0" | ||
406 | id="Arrow1Send-3675" | ||
407 | style="overflow:visible"> | ||
408 | <path | ||
409 | id="path3940-3" | ||
410 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
411 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
412 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
413 | inkscape:connector-curvature="0" /> | ||
414 | </marker> | ||
415 | </defs> | ||
416 | <sodipodi:namedview | ||
417 | pagecolor="#ffffff" | ||
418 | bordercolor="#666666" | ||
419 | borderopacity="1" | ||
420 | objecttolerance="10" | ||
421 | gridtolerance="10" | ||
422 | guidetolerance="10" | ||
423 | inkscape:pageopacity="0" | ||
424 | inkscape:pageshadow="2" | ||
425 | inkscape:window-width="1087" | ||
426 | inkscape:window-height="1148" | ||
427 | id="namedview208" | ||
428 | showgrid="true" | ||
429 | inkscape:zoom="1.4142136" | ||
430 | inkscape:cx="381.32663" | ||
431 | inkscape:cy="239.67141" | ||
432 | inkscape:window-x="833" | ||
433 | inkscape:window-y="24" | ||
434 | inkscape:window-maximized="0" | ||
435 | inkscape:current-layer="svg2" | ||
436 | fit-margin-top="5" | ||
437 | fit-margin-right="5" | ||
438 | fit-margin-left="5" | ||
439 | fit-margin-bottom="5" | ||
440 | inkscape:snap-global="false"> | ||
441 | <inkscape:grid | ||
442 | type="xygrid" | ||
443 | id="grid3154" | ||
444 | empspacing="5" | ||
445 | visible="true" | ||
446 | enabled="true" | ||
447 | snapvisiblegridlinesonly="true" | ||
448 | originx="-235.14935px" | ||
449 | originy="-709.25071px" /> | ||
450 | </sodipodi:namedview> | ||
451 | <path | ||
452 | sodipodi:nodetypes="cc" | ||
453 | inkscape:connector-curvature="0" | ||
454 | id="path3134-9-0-3-1-3-5" | ||
455 | d="m 3754.1051,47.378296 -2.828,7173.860804" | ||
456 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
457 | <path | ||
458 | sodipodi:nodetypes="ccc" | ||
459 | inkscape:connector-curvature="0" | ||
460 | id="path3134-9-0-3-1-3" | ||
461 | d="m 6681.1176,1435.1734 -2.828,1578.9586 -2861.3912,7.7159" | ||
462 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
463 | <path | ||
464 | sodipodi:nodetypes="ccc" | ||
465 | inkscape:connector-curvature="0" | ||
466 | id="path3134-9-0-3-1" | ||
467 | d="m 3748.8929,3772.1176 2904.1747,-0.8434 26.8008,1842.1825" | ||
468 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
469 | <g | ||
470 | id="g3115" | ||
471 | transform="translate(-2341.8794,10827.399)"> | ||
472 | <rect | ||
473 | ry="0" | ||
474 | id="rect118-3" | ||
475 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057923, 60.00115859;stroke-dashoffset:0" | ||
476 | rx="0" | ||
477 | height="2349.7295" | ||
478 | width="5308.7119" | ||
479 | y="-8909.5498" | ||
480 | x="2379.3704" /> | ||
481 | <g | ||
482 | transform="translate(2576.8841,-9085.2783)" | ||
483 | id="g3107-7" | ||
484 | style="fill:none;stroke-width:0.025in"> | ||
485 | <rect | ||
486 | x="2084.55" | ||
487 | y="949.37109" | ||
488 | width="2809.1992" | ||
489 | height="1370.8721" | ||
490 | rx="0" | ||
491 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
492 | id="rect112-5" /> | ||
493 | <rect | ||
494 | x="2084.55" | ||
495 | y="1025.3964" | ||
496 | width="2809.1992" | ||
497 | height="1294.8468" | ||
498 | rx="0" | ||
499 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
500 | id="rect112-3-3" /> | ||
501 | </g> | ||
502 | <text | ||
503 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
504 | id="text202-6-6-2" | ||
505 | font-size="192" | ||
506 | font-weight="bold" | ||
507 | font-style="normal" | ||
508 | y="-7356.375" | ||
509 | x="4769.4536" | ||
510 | xml:space="preserve">->qsmask &= ~->grpmask</text> | ||
511 | <text | ||
512 | sodipodi:linespacing="125%" | ||
513 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
514 | id="text202-7-5-1-2-3" | ||
515 | font-size="192" | ||
516 | font-weight="bold" | ||
517 | font-style="normal" | ||
518 | y="-6825.5815" | ||
519 | x="7082.9585" | ||
520 | xml:space="preserve"><tspan | ||
521 | id="tspan3104-6" | ||
522 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Leaf</tspan></text> | ||
523 | <text | ||
524 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
525 | id="text202-7-2-7-7" | ||
526 | font-size="192" | ||
527 | font-weight="bold" | ||
528 | font-style="normal" | ||
529 | y="-8652.5312" | ||
530 | x="2466.7822" | ||
531 | xml:space="preserve">dyntick_save_progress_counter()</text> | ||
532 | <text | ||
533 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
534 | id="text202-7-2-7-2-0" | ||
535 | font-size="192" | ||
536 | font-weight="bold" | ||
537 | font-style="normal" | ||
538 | y="-8368.1475" | ||
539 | x="2463.3262" | ||
540 | xml:space="preserve">rcu_implicit_dynticks_qs()</text> | ||
541 | </g> | ||
542 | <g | ||
543 | id="g4504" | ||
544 | transform="translate(2063.5184,-16111.739)"> | ||
545 | <path | ||
546 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
547 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
548 | sodipodi:ry="39.550262" | ||
549 | sodipodi:rx="65.917107" | ||
550 | sodipodi:cy="345.54001" | ||
551 | sodipodi:cx="319.379" | ||
552 | id="path3084" | ||
553 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
554 | sodipodi:type="arc" /> | ||
555 | <text | ||
556 | sodipodi:linespacing="125%" | ||
557 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
558 | id="text202-7-5-1-2" | ||
559 | font-size="192" | ||
560 | font-weight="bold" | ||
561 | font-style="normal" | ||
562 | y="16835.086" | ||
563 | x="4409.043" | ||
564 | xml:space="preserve"><tspan | ||
565 | id="tspan3104" | ||
566 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
567 | <text | ||
568 | sodipodi:linespacing="125%" | ||
569 | id="text3110" | ||
570 | y="17055.541" | ||
571 | x="4579.373" | ||
572 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
573 | xml:space="preserve"><tspan | ||
574 | y="17055.541" | ||
575 | x="4579.373" | ||
576 | id="tspan3112" | ||
577 | sodipodi:role="line">read-side</tspan></text> | ||
578 | <text | ||
579 | sodipodi:linespacing="125%" | ||
580 | id="text3114" | ||
581 | y="17297.08" | ||
582 | x="4584.8276" | ||
583 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
584 | xml:space="preserve"><tspan | ||
585 | y="17297.08" | ||
586 | x="4584.8276" | ||
587 | id="tspan3116" | ||
588 | sodipodi:role="line">critical section</tspan></text> | ||
589 | </g> | ||
590 | <g | ||
591 | id="g3148-9-9" | ||
592 | transform="translate(2035.3087,6370.5796)"> | ||
593 | <rect | ||
594 | x="3592.3828" | ||
595 | y="-4715.7246" | ||
596 | width="3164.783" | ||
597 | height="769.99048" | ||
598 | rx="0" | ||
599 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
600 | id="rect118-3-5-1-3" | ||
601 | ry="0" /> | ||
602 | <text | ||
603 | xml:space="preserve" | ||
604 | x="3745.7725" | ||
605 | y="-4418.6582" | ||
606 | font-style="normal" | ||
607 | font-weight="bold" | ||
608 | font-size="192" | ||
609 | id="text202-7-5-3-27-6" | ||
610 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_dynticks_eqs_enter()</text> | ||
611 | <text | ||
612 | xml:space="preserve" | ||
613 | x="3745.7725" | ||
614 | y="-4165.7954" | ||
615 | font-style="normal" | ||
616 | font-weight="bold" | ||
617 | font-size="192" | ||
618 | id="text202-7-5-3-27-0-0" | ||
619 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">atomic_add_return()</text> | ||
620 | </g> | ||
621 | <g | ||
622 | id="g3148-9-9-2" | ||
623 | transform="translate(2035.3089,9031.6839)"> | ||
624 | <rect | ||
625 | x="3592.3828" | ||
626 | y="-4715.7246" | ||
627 | width="3164.783" | ||
628 | height="769.99048" | ||
629 | rx="0" | ||
630 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
631 | id="rect118-3-5-1-3-6" | ||
632 | ry="0" /> | ||
633 | <text | ||
634 | xml:space="preserve" | ||
635 | x="3745.7725" | ||
636 | y="-4418.6582" | ||
637 | font-style="normal" | ||
638 | font-weight="bold" | ||
639 | font-size="192" | ||
640 | id="text202-7-5-3-27-6-1" | ||
641 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_dynticks_eqs_exit()</text> | ||
642 | <text | ||
643 | xml:space="preserve" | ||
644 | x="3745.7725" | ||
645 | y="-4165.7954" | ||
646 | font-style="normal" | ||
647 | font-weight="bold" | ||
648 | font-size="192" | ||
649 | id="text202-7-5-3-27-0-0-8" | ||
650 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">atomic_add_return()</text> | ||
651 | </g> | ||
652 | <g | ||
653 | id="g4504-7" | ||
654 | transform="translate(2082.3248,-10883.562)"> | ||
655 | <path | ||
656 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
657 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
658 | sodipodi:ry="39.550262" | ||
659 | sodipodi:rx="65.917107" | ||
660 | sodipodi:cy="345.54001" | ||
661 | sodipodi:cx="319.379" | ||
662 | id="path3084-9" | ||
663 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
664 | sodipodi:type="arc" /> | ||
665 | <text | ||
666 | sodipodi:linespacing="125%" | ||
667 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
668 | id="text202-7-5-1-2-2" | ||
669 | font-size="192" | ||
670 | font-weight="bold" | ||
671 | font-style="normal" | ||
672 | y="16835.086" | ||
673 | x="4409.043" | ||
674 | xml:space="preserve"><tspan | ||
675 | id="tspan3104-0" | ||
676 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
677 | <text | ||
678 | sodipodi:linespacing="125%" | ||
679 | id="text3110-2" | ||
680 | y="17055.541" | ||
681 | x="4579.373" | ||
682 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
683 | xml:space="preserve"><tspan | ||
684 | y="17055.541" | ||
685 | x="4579.373" | ||
686 | id="tspan3112-3" | ||
687 | sodipodi:role="line">read-side</tspan></text> | ||
688 | <text | ||
689 | sodipodi:linespacing="125%" | ||
690 | id="text3114-7" | ||
691 | y="17297.08" | ||
692 | x="4584.8276" | ||
693 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
694 | xml:space="preserve"><tspan | ||
695 | y="17297.08" | ||
696 | x="4584.8276" | ||
697 | id="tspan3116-5" | ||
698 | sodipodi:role="line">critical section</tspan></text> | ||
699 | </g> | ||
700 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-cleanup.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-cleanup.svg new file mode 100644 index 000000000000..754f426b297a --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-cleanup.svg | |||
@@ -0,0 +1,1126 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="1026.1281" | ||
17 | height="1246.2428" | ||
18 | viewBox="-44 -44 13645.583 16565.045" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-gp-cleanup.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | <marker | ||
178 | inkscape:stockid="Arrow2Lend" | ||
179 | orient="auto" | ||
180 | refY="0" | ||
181 | refX="0" | ||
182 | id="Arrow2Lend-3" | ||
183 | style="overflow:visible"> | ||
184 | <path | ||
185 | id="path3946-1" | ||
186 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
187 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
188 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
189 | inkscape:connector-curvature="0" /> | ||
190 | </marker> | ||
191 | <marker | ||
192 | inkscape:stockid="Arrow2Lend" | ||
193 | orient="auto" | ||
194 | refY="0" | ||
195 | refX="0" | ||
196 | id="Arrow2Lend-4" | ||
197 | style="overflow:visible"> | ||
198 | <path | ||
199 | id="path3946-7" | ||
200 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
201 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
202 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
203 | inkscape:connector-curvature="0" /> | ||
204 | </marker> | ||
205 | <marker | ||
206 | inkscape:stockid="Arrow2Lend" | ||
207 | orient="auto" | ||
208 | refY="0" | ||
209 | refX="0" | ||
210 | id="marker4880" | ||
211 | style="overflow:visible"> | ||
212 | <path | ||
213 | id="path4882" | ||
214 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
215 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
216 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
217 | inkscape:connector-curvature="0" /> | ||
218 | </marker> | ||
219 | <marker | ||
220 | inkscape:stockid="Arrow2Lend" | ||
221 | orient="auto" | ||
222 | refY="0" | ||
223 | refX="0" | ||
224 | id="Arrow2Lend-5" | ||
225 | style="overflow:visible"> | ||
226 | <path | ||
227 | id="path3946-0" | ||
228 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
229 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
230 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
231 | inkscape:connector-curvature="0" /> | ||
232 | </marker> | ||
233 | <marker | ||
234 | inkscape:stockid="Arrow2Lend" | ||
235 | orient="auto" | ||
236 | refY="0" | ||
237 | refX="0" | ||
238 | id="Arrow2Lend-6" | ||
239 | style="overflow:visible"> | ||
240 | <path | ||
241 | id="path3946-10" | ||
242 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
243 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
244 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
245 | inkscape:connector-curvature="0" /> | ||
246 | </marker> | ||
247 | <marker | ||
248 | inkscape:stockid="Arrow2Lend" | ||
249 | orient="auto" | ||
250 | refY="0" | ||
251 | refX="0" | ||
252 | id="Arrow2Lend-1" | ||
253 | style="overflow:visible"> | ||
254 | <path | ||
255 | id="path3946-2" | ||
256 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
257 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
258 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
259 | inkscape:connector-curvature="0" /> | ||
260 | </marker> | ||
261 | <marker | ||
262 | inkscape:stockid="Arrow2Lend" | ||
263 | orient="auto" | ||
264 | refY="0" | ||
265 | refX="0" | ||
266 | id="marker3130" | ||
267 | style="overflow:visible"> | ||
268 | <path | ||
269 | id="path3132" | ||
270 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
271 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
272 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
273 | inkscape:connector-curvature="0" /> | ||
274 | </marker> | ||
275 | <marker | ||
276 | inkscape:stockid="Arrow2Lend" | ||
277 | orient="auto" | ||
278 | refY="0" | ||
279 | refX="0" | ||
280 | id="marker3134" | ||
281 | style="overflow:visible"> | ||
282 | <path | ||
283 | id="path3136" | ||
284 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
285 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
286 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
287 | inkscape:connector-curvature="0" /> | ||
288 | </marker> | ||
289 | <marker | ||
290 | inkscape:stockid="Arrow2Lend" | ||
291 | orient="auto" | ||
292 | refY="0" | ||
293 | refX="0" | ||
294 | id="marker3138" | ||
295 | style="overflow:visible"> | ||
296 | <path | ||
297 | id="path3140" | ||
298 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
299 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
300 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
301 | inkscape:connector-curvature="0" /> | ||
302 | </marker> | ||
303 | <marker | ||
304 | inkscape:stockid="Arrow2Lend" | ||
305 | orient="auto" | ||
306 | refY="0" | ||
307 | refX="0" | ||
308 | id="marker3142" | ||
309 | style="overflow:visible"> | ||
310 | <path | ||
311 | id="path3144" | ||
312 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
313 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
314 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
315 | inkscape:connector-curvature="0" /> | ||
316 | </marker> | ||
317 | <marker | ||
318 | inkscape:stockid="Arrow2Lend" | ||
319 | orient="auto" | ||
320 | refY="0" | ||
321 | refX="0" | ||
322 | id="marker3146" | ||
323 | style="overflow:visible"> | ||
324 | <path | ||
325 | id="path3148" | ||
326 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
327 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
328 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
329 | inkscape:connector-curvature="0" /> | ||
330 | </marker> | ||
331 | <marker | ||
332 | inkscape:stockid="Arrow1Send" | ||
333 | orient="auto" | ||
334 | refY="0" | ||
335 | refX="0" | ||
336 | id="Arrow1Send-7" | ||
337 | style="overflow:visible"> | ||
338 | <path | ||
339 | id="path3940-0" | ||
340 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
341 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
342 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
343 | inkscape:connector-curvature="0" /> | ||
344 | </marker> | ||
345 | <marker | ||
346 | inkscape:stockid="Arrow1Send" | ||
347 | orient="auto" | ||
348 | refY="0" | ||
349 | refX="0" | ||
350 | id="Arrow1Send-36" | ||
351 | style="overflow:visible"> | ||
352 | <path | ||
353 | id="path3940-7" | ||
354 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
355 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
356 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
357 | inkscape:connector-curvature="0" /> | ||
358 | </marker> | ||
359 | <marker | ||
360 | inkscape:stockid="Arrow1Send" | ||
361 | orient="auto" | ||
362 | refY="0" | ||
363 | refX="0" | ||
364 | id="Arrow1Send-36-7" | ||
365 | style="overflow:visible"> | ||
366 | <path | ||
367 | id="path3940-7-4" | ||
368 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
369 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
370 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
371 | inkscape:connector-curvature="0" /> | ||
372 | </marker> | ||
373 | </defs> | ||
374 | <sodipodi:namedview | ||
375 | pagecolor="#ffffff" | ||
376 | bordercolor="#666666" | ||
377 | borderopacity="1" | ||
378 | objecttolerance="10" | ||
379 | gridtolerance="10" | ||
380 | guidetolerance="10" | ||
381 | inkscape:pageopacity="0" | ||
382 | inkscape:pageshadow="2" | ||
383 | inkscape:window-width="1087" | ||
384 | inkscape:window-height="1144" | ||
385 | id="namedview208" | ||
386 | showgrid="true" | ||
387 | inkscape:zoom="0.70710678" | ||
388 | inkscape:cx="617.89017" | ||
389 | inkscape:cy="542.52419" | ||
390 | inkscape:window-x="86" | ||
391 | inkscape:window-y="28" | ||
392 | inkscape:window-maximized="0" | ||
393 | inkscape:current-layer="g3188-3" | ||
394 | fit-margin-top="5" | ||
395 | fit-margin-right="5" | ||
396 | fit-margin-left="5" | ||
397 | fit-margin-bottom="5"> | ||
398 | <inkscape:grid | ||
399 | type="xygrid" | ||
400 | id="grid3391" | ||
401 | empspacing="5" | ||
402 | visible="true" | ||
403 | enabled="true" | ||
404 | snapvisiblegridlinesonly="true" | ||
405 | originx="-1.7575793e-05px" | ||
406 | originy="70.717956px" /> | ||
407 | </sodipodi:namedview> | ||
408 | <path | ||
409 | sodipodi:nodetypes="cccccccccccccccccccccccc" | ||
410 | inkscape:connector-curvature="0" | ||
411 | id="path3134-9-0-3" | ||
412 | d="m 6899.303,45.238347 -2.8276,2480.757053 -2316.0141,-1.687 -2.8276,2179.855 2321.1758,-0.844 -2.7042,-1843.237 2404.5142,-0.211 16.1022,1993.267 -7783.8345,-4.728 -16.7936,2120.3945 2033.1033,-23.5344 2.0128,-1866.5611 2051.9097,14.079 2.0128,1838.2983 1280.8475,-4.728 14.608,-1830.1043 1312.2492,12.923 14.608,1818.337 2000.0061,20.4217 -12.279,-1841.4117 1304.168,1.616 -12.279,2032.7057 -4638.6513,1.6154 19.5828,569.0378" | ||
413 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
414 | <g | ||
415 | style="fill:none;stroke-width:0.025in" | ||
416 | transform="translate(2450.4073,-11647.612)" | ||
417 | id="g3188"> | ||
418 | <text | ||
419 | xml:space="preserve" | ||
420 | x="3199.1516" | ||
421 | y="13255.592" | ||
422 | font-style="normal" | ||
423 | font-weight="bold" | ||
424 | font-size="192" | ||
425 | id="text202" | ||
426 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">->completed = ->gpnum</text> | ||
427 | <g | ||
428 | id="g3107" | ||
429 | transform="translate(947.90548,11584.029)"> | ||
430 | <rect | ||
431 | id="rect112" | ||
432 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
433 | rx="0" | ||
434 | height="1370.8721" | ||
435 | width="2809.1992" | ||
436 | y="949.37109" | ||
437 | x="2084.55" /> | ||
438 | <rect | ||
439 | id="rect112-3" | ||
440 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
441 | rx="0" | ||
442 | height="1294.8468" | ||
443 | width="2809.1992" | ||
444 | y="1025.3964" | ||
445 | x="2084.55" /> | ||
446 | </g> | ||
447 | <text | ||
448 | xml:space="preserve" | ||
449 | x="5452.3052" | ||
450 | y="13844.535" | ||
451 | font-style="normal" | ||
452 | font-weight="bold" | ||
453 | font-size="192" | ||
454 | id="text202-7-5-1-2-3-7" | ||
455 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
456 | sodipodi:linespacing="125%"><tspan | ||
457 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
458 | id="tspan3104-6-5">Root</tspan></text> | ||
459 | </g> | ||
460 | <rect | ||
461 | ry="0" | ||
462 | id="rect118" | ||
463 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115769;stroke-dashoffset:0" | ||
464 | rx="0" | ||
465 | height="14649.609" | ||
466 | width="13482.601" | ||
467 | y="403.13776" | ||
468 | x="37.490932" /> | ||
469 | <text | ||
470 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
471 | id="text202-7" | ||
472 | font-size="192" | ||
473 | font-weight="bold" | ||
474 | font-style="normal" | ||
475 | y="662.59283" | ||
476 | x="153.2673" | ||
477 | xml:space="preserve">rcu_gp_cleanup()</text> | ||
478 | <g | ||
479 | style="fill:none;stroke-width:0.025in" | ||
480 | transform="translate(2329.9437,-11611.245)" | ||
481 | id="g3147"> | ||
482 | <g | ||
483 | style="fill:none;stroke-width:0.025in" | ||
484 | id="g3107-6" | ||
485 | transform="translate(3054.6101,13760.052)"> | ||
486 | <rect | ||
487 | id="rect112-7" | ||
488 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
489 | rx="0" | ||
490 | height="1370.8721" | ||
491 | width="2809.1992" | ||
492 | y="949.37109" | ||
493 | x="2084.55" /> | ||
494 | <rect | ||
495 | id="rect112-3-5" | ||
496 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
497 | rx="0" | ||
498 | height="1294.8468" | ||
499 | width="2809.1992" | ||
500 | y="1025.3964" | ||
501 | x="2084.55" /> | ||
502 | </g> | ||
503 | <text | ||
504 | xml:space="preserve" | ||
505 | x="5324.5371" | ||
506 | y="15414.598" | ||
507 | font-style="normal" | ||
508 | font-weight="bold" | ||
509 | font-size="192" | ||
510 | id="text202-753" | ||
511 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
512 | </g> | ||
513 | <g | ||
514 | style="fill:none;stroke-width:0.025in" | ||
515 | transform="translate(3181.0244,-11647.612)" | ||
516 | id="g3153"> | ||
517 | <g | ||
518 | style="fill:none;stroke-width:0.025in" | ||
519 | id="g3107-6-9" | ||
520 | transform="translate(5213.0126,16008.808)"> | ||
521 | <rect | ||
522 | id="rect112-7-1" | ||
523 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
524 | rx="0" | ||
525 | height="1370.8721" | ||
526 | width="2809.1992" | ||
527 | y="949.37109" | ||
528 | x="2084.55" /> | ||
529 | <rect | ||
530 | id="rect112-3-5-2" | ||
531 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
532 | rx="0" | ||
533 | height="1294.8468" | ||
534 | width="2809.1992" | ||
535 | y="1025.3964" | ||
536 | x="2084.55" /> | ||
537 | </g> | ||
538 | <text | ||
539 | xml:space="preserve" | ||
540 | x="9717.4141" | ||
541 | y="18269.314" | ||
542 | font-style="normal" | ||
543 | font-weight="bold" | ||
544 | font-size="192" | ||
545 | id="text202-7-5-1-2-3-7-35-7" | ||
546 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
547 | sodipodi:linespacing="125%"><tspan | ||
548 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
549 | id="tspan3104-6-5-6-0">Leaf</tspan></text> | ||
550 | <text | ||
551 | xml:space="preserve" | ||
552 | x="7479.5796" | ||
553 | y="17699.943" | ||
554 | font-style="normal" | ||
555 | font-weight="bold" | ||
556 | font-size="192" | ||
557 | id="text202-9" | ||
558 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
559 | <path | ||
560 | sodipodi:nodetypes="cc" | ||
561 | inkscape:connector-curvature="0" | ||
562 | id="path3134-9-0-3-9" | ||
563 | d="m 3710.957,19425.516 -20.9546,8604.655" | ||
564 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
565 | <g | ||
566 | style="fill:none;stroke-width:0.025in" | ||
567 | transform="translate(-737.93887,7732.6672)" | ||
568 | id="g3188-3"> | ||
569 | <text | ||
570 | xml:space="preserve" | ||
571 | x="3225.7478" | ||
572 | y="13175.802" | ||
573 | font-style="normal" | ||
574 | font-weight="bold" | ||
575 | font-size="192" | ||
576 | id="text202-60" | ||
577 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">rsp->completed =</text> | ||
578 | <g | ||
579 | id="g3107-62" | ||
580 | transform="translate(947.90548,11584.029)"> | ||
581 | <rect | ||
582 | id="rect112-6" | ||
583 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
584 | rx="0" | ||
585 | height="1370.8721" | ||
586 | width="2809.1992" | ||
587 | y="949.37109" | ||
588 | x="2084.55" /> | ||
589 | <rect | ||
590 | id="rect112-3-1" | ||
591 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
592 | rx="0" | ||
593 | height="1294.8468" | ||
594 | width="2809.1992" | ||
595 | y="1025.3964" | ||
596 | x="2084.55" /> | ||
597 | </g> | ||
598 | <text | ||
599 | xml:space="preserve" | ||
600 | x="5452.3052" | ||
601 | y="13844.535" | ||
602 | font-style="normal" | ||
603 | font-weight="bold" | ||
604 | font-size="192" | ||
605 | id="text202-7-5-1-2-3-7-8" | ||
606 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
607 | sodipodi:linespacing="125%"><tspan | ||
608 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
609 | id="tspan3104-6-5-7">Root</tspan></text> | ||
610 | <text | ||
611 | xml:space="preserve" | ||
612 | x="3225.7478" | ||
613 | y="13390.038" | ||
614 | font-style="normal" | ||
615 | font-weight="bold" | ||
616 | font-size="192" | ||
617 | id="text202-60-3" | ||
618 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier"> rnp->completed</text> | ||
619 | <flowRoot | ||
620 | xml:space="preserve" | ||
621 | id="flowRoot3356" | ||
622 | style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
623 | transform="matrix(13.298129,0,0,13.298129,-2487.0857,3868.8376)"><flowRegion | ||
624 | id="flowRegion3358"><rect | ||
625 | id="rect3360" | ||
626 | width="373.35239" | ||
627 | height="63.63961" | ||
628 | x="332.34018" | ||
629 | y="681.87292" /></flowRegion><flowPara | ||
630 | id="flowPara3362" /></flowRoot> </g> | ||
631 | <g | ||
632 | style="fill:none;stroke-width:0.025in" | ||
633 | transform="translate(-858.40227,7769.0342)" | ||
634 | id="g3147-9"> | ||
635 | <g | ||
636 | style="fill:none;stroke-width:0.025in" | ||
637 | id="g3107-6-2" | ||
638 | transform="translate(3054.6101,13760.052)"> | ||
639 | <rect | ||
640 | id="rect112-7-02" | ||
641 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
642 | rx="0" | ||
643 | height="1370.8721" | ||
644 | width="2809.1992" | ||
645 | y="949.37109" | ||
646 | x="2084.55" /> | ||
647 | <rect | ||
648 | id="rect112-3-5-3" | ||
649 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
650 | rx="0" | ||
651 | height="1294.8468" | ||
652 | width="2809.1992" | ||
653 | y="1025.3964" | ||
654 | x="2084.55" /> | ||
655 | </g> | ||
656 | </g> | ||
657 | <g | ||
658 | style="fill:none;stroke-width:0.025in" | ||
659 | id="g3107-6-9-5" | ||
660 | transform="translate(5205.6909,23741.476)"> | ||
661 | <rect | ||
662 | id="rect112-7-1-9" | ||
663 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
664 | rx="0" | ||
665 | height="1370.8721" | ||
666 | width="2809.1992" | ||
667 | y="949.37109" | ||
668 | x="2084.55" /> | ||
669 | <rect | ||
670 | id="rect112-3-5-2-2" | ||
671 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
672 | rx="0" | ||
673 | height="1294.8468" | ||
674 | width="2809.1992" | ||
675 | y="1025.3964" | ||
676 | x="2084.55" /> | ||
677 | </g> | ||
678 | <text | ||
679 | xml:space="preserve" | ||
680 | x="9710.0928" | ||
681 | y="26001.982" | ||
682 | font-style="normal" | ||
683 | font-weight="bold" | ||
684 | font-size="192" | ||
685 | id="text202-7-5-1-2-3-7-35-7-2" | ||
686 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
687 | sodipodi:linespacing="125%"><tspan | ||
688 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
689 | id="tspan3104-6-5-6-0-8">Leaf</tspan></text> | ||
690 | <g | ||
691 | transform="translate(-4830.8839,7769.0342)" | ||
692 | id="g3147-3-7" | ||
693 | style="fill:none;stroke-width:0.025in"> | ||
694 | <g | ||
695 | style="fill:none;stroke-width:0.025in" | ||
696 | id="g3107-6-6-3" | ||
697 | transform="translate(3054.6101,13760.052)"> | ||
698 | <rect | ||
699 | id="rect112-7-0-6" | ||
700 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
701 | rx="0" | ||
702 | height="1370.8721" | ||
703 | width="2809.1992" | ||
704 | y="949.37109" | ||
705 | x="2084.55" /> | ||
706 | <rect | ||
707 | id="rect112-3-5-6-1" | ||
708 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
709 | rx="0" | ||
710 | height="1294.8468" | ||
711 | width="2809.1992" | ||
712 | y="1025.3964" | ||
713 | x="2084.55" /> | ||
714 | </g> | ||
715 | </g> | ||
716 | <g | ||
717 | transform="translate(-3340.0639,7732.6672)" | ||
718 | id="g3153-2-9" | ||
719 | style="fill:none;stroke-width:0.025in"> | ||
720 | <g | ||
721 | style="fill:none;stroke-width:0.025in" | ||
722 | id="g3107-6-9-6-3" | ||
723 | transform="translate(5213.0126,16008.808)"> | ||
724 | <rect | ||
725 | id="rect112-7-1-1-1" | ||
726 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
727 | rx="0" | ||
728 | height="1370.8721" | ||
729 | width="2809.1992" | ||
730 | y="949.37109" | ||
731 | x="2084.55" /> | ||
732 | <rect | ||
733 | id="rect112-3-5-2-8-9" | ||
734 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
735 | rx="0" | ||
736 | height="1294.8468" | ||
737 | width="2809.1992" | ||
738 | y="1025.3964" | ||
739 | x="2084.55" /> | ||
740 | </g> | ||
741 | <text | ||
742 | xml:space="preserve" | ||
743 | x="9717.4141" | ||
744 | y="18269.314" | ||
745 | font-style="normal" | ||
746 | font-weight="bold" | ||
747 | font-size="192" | ||
748 | id="text202-7-5-1-2-3-7-35-7-7-4" | ||
749 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
750 | sodipodi:linespacing="125%"><tspan | ||
751 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
752 | id="tspan3104-6-5-6-0-9-7">Leaf</tspan></text> | ||
753 | </g> | ||
754 | <g | ||
755 | transform="translate(-6672.8049,7732.6672)" | ||
756 | id="g3153-20-8" | ||
757 | style="fill:none;stroke-width:0.025in"> | ||
758 | <g | ||
759 | style="fill:none;stroke-width:0.025in" | ||
760 | id="g3107-6-9-2-4" | ||
761 | transform="translate(5213.0126,16008.808)"> | ||
762 | <rect | ||
763 | id="rect112-7-1-3-5" | ||
764 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
765 | rx="0" | ||
766 | height="1370.8721" | ||
767 | width="2809.1992" | ||
768 | y="949.37109" | ||
769 | x="2084.55" /> | ||
770 | <rect | ||
771 | id="rect112-3-5-2-7-0" | ||
772 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
773 | rx="0" | ||
774 | height="1294.8468" | ||
775 | width="2809.1992" | ||
776 | y="1025.3964" | ||
777 | x="2084.55" /> | ||
778 | </g> | ||
779 | <text | ||
780 | xml:space="preserve" | ||
781 | x="9717.4141" | ||
782 | y="18269.314" | ||
783 | font-style="normal" | ||
784 | font-weight="bold" | ||
785 | font-size="192" | ||
786 | id="text202-7-5-1-2-3-7-35-7-5-3" | ||
787 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
788 | sodipodi:linespacing="125%"><tspan | ||
789 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
790 | id="tspan3104-6-5-6-0-92-6">Leaf</tspan></text> | ||
791 | </g> | ||
792 | <g | ||
793 | transform="translate(-10005.546,7732.6672)" | ||
794 | id="g3153-28-0" | ||
795 | style="fill:none;stroke-width:0.025in"> | ||
796 | <g | ||
797 | style="fill:none;stroke-width:0.025in" | ||
798 | id="g3107-6-9-9-6" | ||
799 | transform="translate(5213.0126,16008.808)"> | ||
800 | <rect | ||
801 | id="rect112-7-1-7-3" | ||
802 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
803 | rx="0" | ||
804 | height="1370.8721" | ||
805 | width="2809.1992" | ||
806 | y="949.37109" | ||
807 | x="2084.55" /> | ||
808 | <rect | ||
809 | id="rect112-3-5-2-3-2" | ||
810 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
811 | rx="0" | ||
812 | height="1294.8468" | ||
813 | width="2809.1992" | ||
814 | y="1025.3964" | ||
815 | x="2084.55" /> | ||
816 | </g> | ||
817 | <text | ||
818 | xml:space="preserve" | ||
819 | x="9717.4141" | ||
820 | y="18269.314" | ||
821 | font-style="normal" | ||
822 | font-weight="bold" | ||
823 | font-size="192" | ||
824 | id="text202-7-5-1-2-3-7-35-7-6-0" | ||
825 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
826 | sodipodi:linespacing="125%"><tspan | ||
827 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
828 | id="tspan3104-6-5-6-0-1-6">Leaf</tspan></text> | ||
829 | </g> | ||
830 | <path | ||
831 | style="fill:none;stroke:#000000;stroke-width:13.29812908px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
832 | d="m 2285.411,21615.005 -582.9982,865.094" | ||
833 | id="path3414-5" | ||
834 | inkscape:connector-curvature="0" /> | ||
835 | <path | ||
836 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
837 | d="m 5094.193,21615.267 582.998,865.094" | ||
838 | id="path3414-9-5" | ||
839 | inkscape:connector-curvature="0" /> | ||
840 | <path | ||
841 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
842 | d="m 334.77783,23828.182 -582.9982,865.094" | ||
843 | id="path3414-8-4" | ||
844 | inkscape:connector-curvature="0" /> | ||
845 | <path | ||
846 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
847 | d="m 7079.8249,23828.444 582.9999,865.094" | ||
848 | id="path3414-9-4-7" | ||
849 | inkscape:connector-curvature="0" /> | ||
850 | <path | ||
851 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
852 | d="m 1751.2742,23828.182 0,846.288" | ||
853 | id="path3414-8-3-65" | ||
854 | inkscape:connector-curvature="0" | ||
855 | sodipodi:nodetypes="cc" /> | ||
856 | <path | ||
857 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
858 | d="m 5628.2495,23854.778 0,846.288" | ||
859 | id="path3414-8-3-6-6" | ||
860 | inkscape:connector-curvature="0" | ||
861 | sodipodi:nodetypes="cc" /> | ||
862 | </g> | ||
863 | <g | ||
864 | transform="translate(-1642.5377,-11611.245)" | ||
865 | id="g3147-3" | ||
866 | style="fill:none;stroke-width:0.025in"> | ||
867 | <g | ||
868 | style="fill:none;stroke-width:0.025in" | ||
869 | id="g3107-6-6" | ||
870 | transform="translate(3054.6101,13760.052)"> | ||
871 | <rect | ||
872 | id="rect112-7-0" | ||
873 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
874 | rx="0" | ||
875 | height="1370.8721" | ||
876 | width="2809.1992" | ||
877 | y="949.37109" | ||
878 | x="2084.55" /> | ||
879 | <rect | ||
880 | id="rect112-3-5-6" | ||
881 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
882 | rx="0" | ||
883 | height="1294.8468" | ||
884 | width="2809.1992" | ||
885 | y="1025.3964" | ||
886 | x="2084.55" /> | ||
887 | </g> | ||
888 | <text | ||
889 | xml:space="preserve" | ||
890 | x="5327.3057" | ||
891 | y="15428.84" | ||
892 | font-style="normal" | ||
893 | font-weight="bold" | ||
894 | font-size="192" | ||
895 | id="text202-36" | ||
896 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
897 | </g> | ||
898 | <g | ||
899 | transform="translate(-151.71746,-11647.612)" | ||
900 | id="g3153-2" | ||
901 | style="fill:none;stroke-width:0.025in"> | ||
902 | <g | ||
903 | style="fill:none;stroke-width:0.025in" | ||
904 | id="g3107-6-9-6" | ||
905 | transform="translate(5213.0126,16008.808)"> | ||
906 | <rect | ||
907 | id="rect112-7-1-1" | ||
908 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
909 | rx="0" | ||
910 | height="1370.8721" | ||
911 | width="2809.1992" | ||
912 | y="949.37109" | ||
913 | x="2084.55" /> | ||
914 | <rect | ||
915 | id="rect112-3-5-2-8" | ||
916 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
917 | rx="0" | ||
918 | height="1294.8468" | ||
919 | width="2809.1992" | ||
920 | y="1025.3964" | ||
921 | x="2084.55" /> | ||
922 | </g> | ||
923 | <text | ||
924 | xml:space="preserve" | ||
925 | x="9717.4141" | ||
926 | y="18269.314" | ||
927 | font-style="normal" | ||
928 | font-weight="bold" | ||
929 | font-size="192" | ||
930 | id="text202-7-5-1-2-3-7-35-7-7" | ||
931 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
932 | sodipodi:linespacing="125%"><tspan | ||
933 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
934 | id="tspan3104-6-5-6-0-9">Leaf</tspan></text> | ||
935 | </g> | ||
936 | <g | ||
937 | transform="translate(-3484.4587,-11647.612)" | ||
938 | id="g3153-20" | ||
939 | style="fill:none;stroke-width:0.025in"> | ||
940 | <g | ||
941 | style="fill:none;stroke-width:0.025in" | ||
942 | id="g3107-6-9-2" | ||
943 | transform="translate(5213.0126,16008.808)"> | ||
944 | <rect | ||
945 | id="rect112-7-1-3" | ||
946 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
947 | rx="0" | ||
948 | height="1370.8721" | ||
949 | width="2809.1992" | ||
950 | y="949.37109" | ||
951 | x="2084.55" /> | ||
952 | <rect | ||
953 | id="rect112-3-5-2-7" | ||
954 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
955 | rx="0" | ||
956 | height="1294.8468" | ||
957 | width="2809.1992" | ||
958 | y="1025.3964" | ||
959 | x="2084.55" /> | ||
960 | </g> | ||
961 | <text | ||
962 | xml:space="preserve" | ||
963 | x="9717.4141" | ||
964 | y="18269.314" | ||
965 | font-style="normal" | ||
966 | font-weight="bold" | ||
967 | font-size="192" | ||
968 | id="text202-7-5-1-2-3-7-35-7-5" | ||
969 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
970 | sodipodi:linespacing="125%"><tspan | ||
971 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
972 | id="tspan3104-6-5-6-0-92">Leaf</tspan></text> | ||
973 | <text | ||
974 | xml:space="preserve" | ||
975 | x="7486.4907" | ||
976 | y="17670.119" | ||
977 | font-style="normal" | ||
978 | font-weight="bold" | ||
979 | font-size="192" | ||
980 | id="text202-6" | ||
981 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
982 | </g> | ||
983 | <g | ||
984 | transform="translate(-6817.1997,-11647.612)" | ||
985 | id="g3153-28" | ||
986 | style="fill:none;stroke-width:0.025in"> | ||
987 | <g | ||
988 | style="fill:none;stroke-width:0.025in" | ||
989 | id="g3107-6-9-9" | ||
990 | transform="translate(5213.0126,16008.808)"> | ||
991 | <rect | ||
992 | id="rect112-7-1-7" | ||
993 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
994 | rx="0" | ||
995 | height="1370.8721" | ||
996 | width="2809.1992" | ||
997 | y="949.37109" | ||
998 | x="2084.55" /> | ||
999 | <rect | ||
1000 | id="rect112-3-5-2-3" | ||
1001 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1002 | rx="0" | ||
1003 | height="1294.8468" | ||
1004 | width="2809.1992" | ||
1005 | y="1025.3964" | ||
1006 | x="2084.55" /> | ||
1007 | </g> | ||
1008 | <text | ||
1009 | xml:space="preserve" | ||
1010 | x="9717.4141" | ||
1011 | y="18269.314" | ||
1012 | font-style="normal" | ||
1013 | font-weight="bold" | ||
1014 | font-size="192" | ||
1015 | id="text202-7-5-1-2-3-7-35-7-6" | ||
1016 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1017 | sodipodi:linespacing="125%"><tspan | ||
1018 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1019 | id="tspan3104-6-5-6-0-1">Leaf</tspan></text> | ||
1020 | <text | ||
1021 | xml:space="preserve" | ||
1022 | x="7474.1382" | ||
1023 | y="17688.926" | ||
1024 | font-style="normal" | ||
1025 | font-weight="bold" | ||
1026 | font-size="192" | ||
1027 | id="text202-5" | ||
1028 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
1029 | </g> | ||
1030 | <path | ||
1031 | style="fill:none;stroke:#000000;stroke-width:13.29812908px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1032 | d="m 5473.757,2234.7264 -582.9982,865.094" | ||
1033 | id="path3414" | ||
1034 | inkscape:connector-curvature="0" /> | ||
1035 | <path | ||
1036 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1037 | d="m 8282.5389,2234.9884 582.9982,865.094" | ||
1038 | id="path3414-9" | ||
1039 | inkscape:connector-curvature="0" /> | ||
1040 | <path | ||
1041 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1042 | d="m 3523.1239,4447.9034 -582.9982,865.094" | ||
1043 | id="path3414-8" | ||
1044 | inkscape:connector-curvature="0" /> | ||
1045 | <path | ||
1046 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1047 | d="m 10268.171,4448.1654 583,865.094" | ||
1048 | id="path3414-9-4" | ||
1049 | inkscape:connector-curvature="0" /> | ||
1050 | <path | ||
1051 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1052 | d="m 4939.6203,4447.9034 0,846.288" | ||
1053 | id="path3414-8-3" | ||
1054 | inkscape:connector-curvature="0" | ||
1055 | sodipodi:nodetypes="cc" /> | ||
1056 | <path | ||
1057 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1058 | d="m 8816.5956,4474.4994 0,846.288" | ||
1059 | id="path3414-8-3-6" | ||
1060 | inkscape:connector-curvature="0" | ||
1061 | sodipodi:nodetypes="cc" /> | ||
1062 | <text | ||
1063 | xml:space="preserve" | ||
1064 | x="7318.9653" | ||
1065 | y="6031.6353" | ||
1066 | font-style="normal" | ||
1067 | font-weight="bold" | ||
1068 | font-size="192" | ||
1069 | id="text202-2" | ||
1070 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
1071 | <g | ||
1072 | style="fill:none;stroke-width:0.025in" | ||
1073 | id="g4504-3-9" | ||
1074 | transform="translate(4866.6205,-1197.2204)"> | ||
1075 | <path | ||
1076 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
1077 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
1078 | sodipodi:ry="39.550262" | ||
1079 | sodipodi:rx="65.917107" | ||
1080 | sodipodi:cy="345.54001" | ||
1081 | sodipodi:cx="319.379" | ||
1082 | id="path3084-6-1" | ||
1083 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
1084 | sodipodi:type="arc" /> | ||
1085 | <text | ||
1086 | sodipodi:linespacing="125%" | ||
1087 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1088 | id="text202-7-5-1-2-7-2" | ||
1089 | font-size="192" | ||
1090 | font-weight="bold" | ||
1091 | font-style="normal" | ||
1092 | y="16888.277" | ||
1093 | x="4344.877" | ||
1094 | xml:space="preserve"><tspan | ||
1095 | id="tspan3104-5-7" | ||
1096 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Start of</tspan></text> | ||
1097 | <text | ||
1098 | sodipodi:linespacing="125%" | ||
1099 | id="text3110-3-0" | ||
1100 | y="17119.1" | ||
1101 | x="4578.7886" | ||
1102 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1103 | xml:space="preserve"><tspan | ||
1104 | y="17119.1" | ||
1105 | x="4578.7886" | ||
1106 | id="tspan3112-5-9" | ||
1107 | sodipodi:role="line">Next Grace</tspan></text> | ||
1108 | <text | ||
1109 | sodipodi:linespacing="125%" | ||
1110 | id="text3114-6-3" | ||
1111 | y="17350.271" | ||
1112 | x="4581.7886" | ||
1113 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1114 | xml:space="preserve"><tspan | ||
1115 | y="17350.271" | ||
1116 | x="4581.7886" | ||
1117 | id="tspan3116-2-6" | ||
1118 | sodipodi:role="line">Period</tspan></text> | ||
1119 | </g> | ||
1120 | <path | ||
1121 | sodipodi:nodetypes="cc" | ||
1122 | inkscape:connector-curvature="0" | ||
1123 | id="path3134-9-0-3-5" | ||
1124 | d="m 6875.6003,15833.906 1595.7755,0" | ||
1125 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send-36)" /> | ||
1126 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-fqs.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-fqs.svg new file mode 100644 index 000000000000..7ddc094d7f28 --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-fqs.svg | |||
@@ -0,0 +1,1309 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="1626.5847" | ||
17 | height="843.1416" | ||
18 | viewBox="-44 -44 21630.534 11207.028" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-gp-fqs.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | <marker | ||
178 | inkscape:stockid="Arrow2Lend" | ||
179 | orient="auto" | ||
180 | refY="0" | ||
181 | refX="0" | ||
182 | id="Arrow2Lend-3" | ||
183 | style="overflow:visible"> | ||
184 | <path | ||
185 | id="path3946-1" | ||
186 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
187 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
188 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
189 | inkscape:connector-curvature="0" /> | ||
190 | </marker> | ||
191 | <marker | ||
192 | inkscape:stockid="Arrow2Lend" | ||
193 | orient="auto" | ||
194 | refY="0" | ||
195 | refX="0" | ||
196 | id="Arrow2Lend-4" | ||
197 | style="overflow:visible"> | ||
198 | <path | ||
199 | id="path3946-7" | ||
200 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
201 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
202 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
203 | inkscape:connector-curvature="0" /> | ||
204 | </marker> | ||
205 | <marker | ||
206 | inkscape:stockid="Arrow2Lend" | ||
207 | orient="auto" | ||
208 | refY="0" | ||
209 | refX="0" | ||
210 | id="marker4880" | ||
211 | style="overflow:visible"> | ||
212 | <path | ||
213 | id="path4882" | ||
214 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
215 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
216 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
217 | inkscape:connector-curvature="0" /> | ||
218 | </marker> | ||
219 | <marker | ||
220 | inkscape:stockid="Arrow2Lend" | ||
221 | orient="auto" | ||
222 | refY="0" | ||
223 | refX="0" | ||
224 | id="Arrow2Lend-5" | ||
225 | style="overflow:visible"> | ||
226 | <path | ||
227 | id="path3946-0" | ||
228 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
229 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
230 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
231 | inkscape:connector-curvature="0" /> | ||
232 | </marker> | ||
233 | <marker | ||
234 | inkscape:stockid="Arrow2Lend" | ||
235 | orient="auto" | ||
236 | refY="0" | ||
237 | refX="0" | ||
238 | id="Arrow2Lend-6" | ||
239 | style="overflow:visible"> | ||
240 | <path | ||
241 | id="path3946-10" | ||
242 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
243 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
244 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
245 | inkscape:connector-curvature="0" /> | ||
246 | </marker> | ||
247 | <marker | ||
248 | inkscape:stockid="Arrow1Send" | ||
249 | orient="auto" | ||
250 | refY="0" | ||
251 | refX="0" | ||
252 | id="Arrow1Send-36" | ||
253 | style="overflow:visible"> | ||
254 | <path | ||
255 | id="path3940-0" | ||
256 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
257 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
258 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
259 | inkscape:connector-curvature="0" /> | ||
260 | </marker> | ||
261 | <marker | ||
262 | inkscape:stockid="Arrow1Send" | ||
263 | orient="auto" | ||
264 | refY="0" | ||
265 | refX="0" | ||
266 | id="Arrow1Send-6" | ||
267 | style="overflow:visible"> | ||
268 | <path | ||
269 | id="path3940-26" | ||
270 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
271 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
272 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
273 | inkscape:connector-curvature="0" /> | ||
274 | </marker> | ||
275 | <marker | ||
276 | inkscape:stockid="Arrow1Send" | ||
277 | orient="auto" | ||
278 | refY="0" | ||
279 | refX="0" | ||
280 | id="Arrow1Send-8" | ||
281 | style="overflow:visible"> | ||
282 | <path | ||
283 | id="path3940-7" | ||
284 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
285 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
286 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
287 | inkscape:connector-curvature="0" /> | ||
288 | </marker> | ||
289 | <marker | ||
290 | inkscape:stockid="Arrow1Send" | ||
291 | orient="auto" | ||
292 | refY="0" | ||
293 | refX="0" | ||
294 | id="Arrow1Send-367" | ||
295 | style="overflow:visible"> | ||
296 | <path | ||
297 | id="path3940-5" | ||
298 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
299 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
300 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
301 | inkscape:connector-curvature="0" /> | ||
302 | </marker> | ||
303 | <marker | ||
304 | inkscape:stockid="Arrow2Lend" | ||
305 | orient="auto" | ||
306 | refY="0" | ||
307 | refX="0" | ||
308 | id="Arrow2Lend-56" | ||
309 | style="overflow:visible"> | ||
310 | <path | ||
311 | id="path3946-2" | ||
312 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
313 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
314 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
315 | inkscape:connector-curvature="0" /> | ||
316 | </marker> | ||
317 | <marker | ||
318 | inkscape:stockid="Arrow2Lend" | ||
319 | orient="auto" | ||
320 | refY="0" | ||
321 | refX="0" | ||
322 | id="marker3081" | ||
323 | style="overflow:visible"> | ||
324 | <path | ||
325 | id="path3083" | ||
326 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
327 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
328 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
329 | inkscape:connector-curvature="0" /> | ||
330 | </marker> | ||
331 | <marker | ||
332 | inkscape:stockid="Arrow2Lend" | ||
333 | orient="auto" | ||
334 | refY="0" | ||
335 | refX="0" | ||
336 | id="marker3085" | ||
337 | style="overflow:visible"> | ||
338 | <path | ||
339 | id="path3087" | ||
340 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
341 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
342 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
343 | inkscape:connector-curvature="0" /> | ||
344 | </marker> | ||
345 | <marker | ||
346 | inkscape:stockid="Arrow2Lend" | ||
347 | orient="auto" | ||
348 | refY="0" | ||
349 | refX="0" | ||
350 | id="marker3089" | ||
351 | style="overflow:visible"> | ||
352 | <path | ||
353 | id="path3091" | ||
354 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
355 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
356 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
357 | inkscape:connector-curvature="0" /> | ||
358 | </marker> | ||
359 | <marker | ||
360 | inkscape:stockid="Arrow2Lend" | ||
361 | orient="auto" | ||
362 | refY="0" | ||
363 | refX="0" | ||
364 | id="marker3093" | ||
365 | style="overflow:visible"> | ||
366 | <path | ||
367 | id="path3095" | ||
368 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
369 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
370 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
371 | inkscape:connector-curvature="0" /> | ||
372 | </marker> | ||
373 | <marker | ||
374 | inkscape:stockid="Arrow2Lend" | ||
375 | orient="auto" | ||
376 | refY="0" | ||
377 | refX="0" | ||
378 | id="marker3097" | ||
379 | style="overflow:visible"> | ||
380 | <path | ||
381 | id="path3099" | ||
382 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
383 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
384 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
385 | inkscape:connector-curvature="0" /> | ||
386 | </marker> | ||
387 | <marker | ||
388 | inkscape:stockid="Arrow1Send" | ||
389 | orient="auto" | ||
390 | refY="0" | ||
391 | refX="0" | ||
392 | id="Arrow1Send-9" | ||
393 | style="overflow:visible"> | ||
394 | <path | ||
395 | id="path3940-1" | ||
396 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
397 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
398 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
399 | inkscape:connector-curvature="0" /> | ||
400 | </marker> | ||
401 | <marker | ||
402 | inkscape:stockid="Arrow1Send" | ||
403 | orient="auto" | ||
404 | refY="0" | ||
405 | refX="0" | ||
406 | id="Arrow1Send-91" | ||
407 | style="overflow:visible"> | ||
408 | <path | ||
409 | id="path3940-27" | ||
410 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
411 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
412 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
413 | inkscape:connector-curvature="0" /> | ||
414 | </marker> | ||
415 | <marker | ||
416 | inkscape:stockid="Arrow1Send" | ||
417 | orient="auto" | ||
418 | refY="0" | ||
419 | refX="0" | ||
420 | id="marker3082" | ||
421 | style="overflow:visible"> | ||
422 | <path | ||
423 | id="path3084" | ||
424 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
425 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
426 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
427 | inkscape:connector-curvature="0" /> | ||
428 | </marker> | ||
429 | <marker | ||
430 | inkscape:stockid="Arrow1Send" | ||
431 | orient="auto" | ||
432 | refY="0" | ||
433 | refX="0" | ||
434 | id="Arrow1Send-09" | ||
435 | style="overflow:visible"> | ||
436 | <path | ||
437 | id="path3940-3" | ||
438 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
439 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
440 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
441 | inkscape:connector-curvature="0" /> | ||
442 | </marker> | ||
443 | <marker | ||
444 | inkscape:stockid="Arrow1Send" | ||
445 | orient="auto" | ||
446 | refY="0" | ||
447 | refX="0" | ||
448 | id="marker3093-6" | ||
449 | style="overflow:visible"> | ||
450 | <path | ||
451 | id="path3095-0" | ||
452 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
453 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
454 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
455 | inkscape:connector-curvature="0" /> | ||
456 | </marker> | ||
457 | <marker | ||
458 | inkscape:stockid="Arrow1Send" | ||
459 | orient="auto" | ||
460 | refY="0" | ||
461 | refX="0" | ||
462 | id="Arrow1Send-3675" | ||
463 | style="overflow:visible"> | ||
464 | <path | ||
465 | id="path3940-35" | ||
466 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
467 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
468 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
469 | inkscape:connector-curvature="0" /> | ||
470 | </marker> | ||
471 | </defs> | ||
472 | <sodipodi:namedview | ||
473 | pagecolor="#ffffff" | ||
474 | bordercolor="#666666" | ||
475 | borderopacity="1" | ||
476 | objecttolerance="10" | ||
477 | gridtolerance="10" | ||
478 | guidetolerance="10" | ||
479 | inkscape:pageopacity="0" | ||
480 | inkscape:pageshadow="2" | ||
481 | inkscape:window-width="1087" | ||
482 | inkscape:window-height="1144" | ||
483 | id="namedview208" | ||
484 | showgrid="true" | ||
485 | inkscape:zoom="0.5" | ||
486 | inkscape:cx="843.3925" | ||
487 | inkscape:cy="528.22238" | ||
488 | inkscape:window-x="860" | ||
489 | inkscape:window-y="65" | ||
490 | inkscape:window-maximized="0" | ||
491 | inkscape:current-layer="svg2" | ||
492 | fit-margin-top="5" | ||
493 | fit-margin-right="5" | ||
494 | fit-margin-left="5" | ||
495 | fit-margin-bottom="5" | ||
496 | inkscape:snap-global="false"> | ||
497 | <inkscape:grid | ||
498 | type="xygrid" | ||
499 | id="grid3154" | ||
500 | empspacing="5" | ||
501 | visible="true" | ||
502 | enabled="true" | ||
503 | snapvisiblegridlinesonly="true" | ||
504 | originx="306.04964px" | ||
505 | originy="286.40704px" /> | ||
506 | </sodipodi:namedview> | ||
507 | <path | ||
508 | sodipodi:nodetypes="ccc" | ||
509 | inkscape:connector-curvature="0" | ||
510 | id="path3134-9-0-3-1" | ||
511 | d="m 16000.705,7361.3625 3383.738,-0.8434 7.995,1860.9894" | ||
512 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
513 | <path | ||
514 | sodipodi:nodetypes="ccc" | ||
515 | inkscape:connector-curvature="0" | ||
516 | id="path3134-9-0-3-1-3" | ||
517 | d="m 19393.687,5043.2247 -2.828,1541.346 -3303.342,-1.6876" | ||
518 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
519 | <path | ||
520 | sodipodi:nodetypes="ccc" | ||
521 | inkscape:connector-curvature="0" | ||
522 | id="path3134-9-0-3-1-6" | ||
523 | d="m 5568.2242,7353.9621 -3929.1209,17.9634 20.2153,2632.0515" | ||
524 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
525 | <path | ||
526 | sodipodi:nodetypes="ccc" | ||
527 | inkscape:connector-curvature="0" | ||
528 | id="path3134-9-0-3-1-3-2" | ||
529 | d="m 1629.8598,3926.2473 12.2312,2669.7292 3867.5308,7.7168" | ||
530 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
531 | <path | ||
532 | sodipodi:nodetypes="cccccccccccccccccccccccccccccc" | ||
533 | inkscape:connector-curvature="0" | ||
534 | id="path3134-9-0-3" | ||
535 | d="m 10932.061,46.910528 -2.827,638.638602 -5325.0378,35.9259 -21.6339,7219.96837 2057.8863,-38.4562 -21.5106,-2087.7208 -491.6705,-0.211 -2.7042,-1993.689 1393.686,-4.728 39.6256,4057.454 2379.6691,32.779 14.608,-1848.911 1312.249,12.923 14.608,1818.337 2000.007,20.422 -12.28,-1841.412 1191.331,1.616 15.929,1289.8537 520.344,0.202 m 0,0 -15.641,-1570.1327 -2629.727,-18.604 3.166,-2124.92 -2385.245,19.007 21.973,-2444.6293 5551.053,37.8148 1.584,7165.3369 m 0,0 -5602.722,0.1016 19.583,813.521" | ||
536 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
537 | <rect | ||
538 | ry="0" | ||
539 | id="rect118" | ||
540 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057925, 60.0011585;stroke-dashoffset:0" | ||
541 | rx="0" | ||
542 | height="8254.9336" | ||
543 | width="14128.912" | ||
544 | y="443.33136" | ||
545 | x="4032.6365" /> | ||
546 | <text | ||
547 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
548 | id="text202-7" | ||
549 | font-size="192" | ||
550 | font-weight="bold" | ||
551 | font-style="normal" | ||
552 | y="720.02423" | ||
553 | x="4178.2354" | ||
554 | xml:space="preserve">rcu_gp_fqs()</text> | ||
555 | <g | ||
556 | style="fill:none;stroke-width:0.025in" | ||
557 | transform="translate(6381.5083,-10649.537)" | ||
558 | id="g3147"> | ||
559 | <g | ||
560 | style="fill:none;stroke-width:0.025in" | ||
561 | id="g3107-6" | ||
562 | transform="translate(3054.6101,13760.052)"> | ||
563 | <rect | ||
564 | id="rect112-7" | ||
565 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
566 | rx="0" | ||
567 | height="1370.8721" | ||
568 | width="2809.1992" | ||
569 | y="949.37109" | ||
570 | x="2084.55" /> | ||
571 | <rect | ||
572 | id="rect112-3-5" | ||
573 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
574 | rx="0" | ||
575 | height="1294.8468" | ||
576 | width="2809.1992" | ||
577 | y="1025.3964" | ||
578 | x="2084.55" /> | ||
579 | </g> | ||
580 | <text | ||
581 | xml:space="preserve" | ||
582 | x="5250.5327" | ||
583 | y="15512.733" | ||
584 | font-style="normal" | ||
585 | font-weight="bold" | ||
586 | font-size="192" | ||
587 | id="text202-35" | ||
588 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
589 | </g> | ||
590 | <g | ||
591 | style="fill:none;stroke-width:0.025in" | ||
592 | transform="translate(7232.589,-10685.904)" | ||
593 | id="g3153"> | ||
594 | <g | ||
595 | style="fill:none;stroke-width:0.025in" | ||
596 | id="g3107-6-9" | ||
597 | transform="translate(5213.0126,16008.808)"> | ||
598 | <rect | ||
599 | id="rect112-7-1" | ||
600 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
601 | rx="0" | ||
602 | height="1370.8721" | ||
603 | width="2809.1992" | ||
604 | y="949.37109" | ||
605 | x="2084.55" /> | ||
606 | <rect | ||
607 | id="rect112-3-5-2" | ||
608 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
609 | rx="0" | ||
610 | height="1294.8468" | ||
611 | width="2809.1992" | ||
612 | y="1025.3964" | ||
613 | x="2084.55" /> | ||
614 | </g> | ||
615 | <text | ||
616 | xml:space="preserve" | ||
617 | x="9717.4141" | ||
618 | y="18269.314" | ||
619 | font-style="normal" | ||
620 | font-weight="bold" | ||
621 | font-size="192" | ||
622 | id="text202-7-5-1-2-3-7-35-7" | ||
623 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
624 | sodipodi:linespacing="125%"><tspan | ||
625 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
626 | id="tspan3104-6-5-6-0">Leaf</tspan></text> | ||
627 | </g> | ||
628 | <g | ||
629 | transform="translate(2409.0267,-10649.537)" | ||
630 | id="g3147-3" | ||
631 | style="fill:none;stroke-width:0.025in"> | ||
632 | <g | ||
633 | style="fill:none;stroke-width:0.025in" | ||
634 | id="g3107-6-6" | ||
635 | transform="translate(3054.6101,13760.052)"> | ||
636 | <rect | ||
637 | id="rect112-7-0" | ||
638 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
639 | rx="0" | ||
640 | height="1370.8721" | ||
641 | width="2809.1992" | ||
642 | y="949.37109" | ||
643 | x="2084.55" /> | ||
644 | <rect | ||
645 | id="rect112-3-5-6" | ||
646 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
647 | rx="0" | ||
648 | height="1294.8468" | ||
649 | width="2809.1992" | ||
650 | y="1025.3964" | ||
651 | x="2084.55" /> | ||
652 | </g> | ||
653 | <text | ||
654 | xml:space="preserve" | ||
655 | x="5284.6885" | ||
656 | y="15500.379" | ||
657 | font-style="normal" | ||
658 | font-weight="bold" | ||
659 | font-size="192" | ||
660 | id="text202-6" | ||
661 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
662 | </g> | ||
663 | <g | ||
664 | transform="translate(3899.8472,-10685.904)" | ||
665 | id="g3153-2" | ||
666 | style="fill:none;stroke-width:0.025in"> | ||
667 | <g | ||
668 | style="fill:none;stroke-width:0.025in" | ||
669 | id="g3107-6-9-6" | ||
670 | transform="translate(5213.0126,16008.808)"> | ||
671 | <rect | ||
672 | id="rect112-7-1-1" | ||
673 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
674 | rx="0" | ||
675 | height="1370.8721" | ||
676 | width="2809.1992" | ||
677 | y="949.37109" | ||
678 | x="2084.55" /> | ||
679 | <rect | ||
680 | id="rect112-3-5-2-8" | ||
681 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
682 | rx="0" | ||
683 | height="1294.8468" | ||
684 | width="2809.1992" | ||
685 | y="1025.3964" | ||
686 | x="2084.55" /> | ||
687 | </g> | ||
688 | <text | ||
689 | xml:space="preserve" | ||
690 | x="9717.4141" | ||
691 | y="18269.314" | ||
692 | font-style="normal" | ||
693 | font-weight="bold" | ||
694 | font-size="192" | ||
695 | id="text202-7-5-1-2-3-7-35-7-7" | ||
696 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
697 | sodipodi:linespacing="125%"><tspan | ||
698 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
699 | id="tspan3104-6-5-6-0-9">Leaf</tspan></text> | ||
700 | </g> | ||
701 | <g | ||
702 | transform="translate(567.10542,-10685.904)" | ||
703 | id="g3153-20" | ||
704 | style="fill:none;stroke-width:0.025in"> | ||
705 | <g | ||
706 | style="fill:none;stroke-width:0.025in" | ||
707 | id="g3107-6-9-2" | ||
708 | transform="translate(5213.0126,16008.808)"> | ||
709 | <rect | ||
710 | id="rect112-7-1-3" | ||
711 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
712 | rx="0" | ||
713 | height="1370.8721" | ||
714 | width="2809.1992" | ||
715 | y="949.37109" | ||
716 | x="2084.55" /> | ||
717 | <rect | ||
718 | id="rect112-3-5-2-7" | ||
719 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
720 | rx="0" | ||
721 | height="1294.8468" | ||
722 | width="2809.1992" | ||
723 | y="1025.3964" | ||
724 | x="2084.55" /> | ||
725 | </g> | ||
726 | <text | ||
727 | xml:space="preserve" | ||
728 | x="9717.4141" | ||
729 | y="18269.314" | ||
730 | font-style="normal" | ||
731 | font-weight="bold" | ||
732 | font-size="192" | ||
733 | id="text202-7-5-1-2-3-7-35-7-5" | ||
734 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
735 | sodipodi:linespacing="125%"><tspan | ||
736 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
737 | id="tspan3104-6-5-6-0-92">Leaf</tspan></text> | ||
738 | </g> | ||
739 | <g | ||
740 | transform="translate(-2765.6353,-10685.904)" | ||
741 | id="g3153-28" | ||
742 | style="fill:none;stroke-width:0.025in"> | ||
743 | <g | ||
744 | style="fill:none;stroke-width:0.025in" | ||
745 | id="g3107-6-9-9" | ||
746 | transform="translate(5213.0126,16008.808)"> | ||
747 | <rect | ||
748 | id="rect112-7-1-7" | ||
749 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
750 | rx="0" | ||
751 | height="1370.8721" | ||
752 | width="2809.1992" | ||
753 | y="949.37109" | ||
754 | x="2084.55" /> | ||
755 | <rect | ||
756 | id="rect112-3-5-2-3" | ||
757 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
758 | rx="0" | ||
759 | height="1294.8468" | ||
760 | width="2809.1992" | ||
761 | y="1025.3964" | ||
762 | x="2084.55" /> | ||
763 | </g> | ||
764 | <text | ||
765 | xml:space="preserve" | ||
766 | x="9717.4141" | ||
767 | y="18269.314" | ||
768 | font-style="normal" | ||
769 | font-weight="bold" | ||
770 | font-size="192" | ||
771 | id="text202-7-5-1-2-3-7-35-7-6" | ||
772 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
773 | sodipodi:linespacing="125%"><tspan | ||
774 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
775 | id="tspan3104-6-5-6-0-1">Leaf</tspan></text> | ||
776 | <text | ||
777 | xml:space="preserve" | ||
778 | x="7428.2939" | ||
779 | y="17707.271" | ||
780 | font-style="normal" | ||
781 | font-weight="bold" | ||
782 | font-size="192" | ||
783 | id="text202-75" | ||
784 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
785 | </g> | ||
786 | <path | ||
787 | style="fill:none;stroke:#000000;stroke-width:13.29812908px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
788 | d="m 9525.3217,3196.4324 -582.9982,865.094" | ||
789 | id="path3414" | ||
790 | inkscape:connector-curvature="0" /> | ||
791 | <path | ||
792 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
793 | d="m 12334.103,3196.6944 582.999,865.094" | ||
794 | id="path3414-9" | ||
795 | inkscape:connector-curvature="0" /> | ||
796 | <path | ||
797 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
798 | d="m 7574.6885,5409.6094 -582.9983,865.094" | ||
799 | id="path3414-8" | ||
800 | inkscape:connector-curvature="0" /> | ||
801 | <path | ||
802 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
803 | d="m 14319.735,5409.8714 583.001,865.094" | ||
804 | id="path3414-9-4" | ||
805 | inkscape:connector-curvature="0" /> | ||
806 | <path | ||
807 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
808 | d="m 8991.1849,5409.6094 0,846.288" | ||
809 | id="path3414-8-3" | ||
810 | inkscape:connector-curvature="0" | ||
811 | sodipodi:nodetypes="cc" /> | ||
812 | <path | ||
813 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
814 | d="m 12868.16,5436.2054 0,846.288" | ||
815 | id="path3414-8-3-6" | ||
816 | inkscape:connector-curvature="0" | ||
817 | sodipodi:nodetypes="cc" /> | ||
818 | <rect | ||
819 | ry="0" | ||
820 | id="rect118-1" | ||
821 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057965, 60.00115916;stroke-dashoffset:0" | ||
822 | rx="0" | ||
823 | height="7164.1621" | ||
824 | width="13301.43" | ||
825 | y="984.91095" | ||
826 | x="4277.6021" /> | ||
827 | <text | ||
828 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
829 | id="text202-7-2" | ||
830 | font-size="192" | ||
831 | font-weight="bold" | ||
832 | font-style="normal" | ||
833 | y="1236.326" | ||
834 | x="4409.96" | ||
835 | xml:space="preserve" | ||
836 | sodipodi:linespacing="125%">force_qs_rnp()<tspan | ||
837 | style="font-size:192px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
838 | id="tspan3307" /></text> | ||
839 | <text | ||
840 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
841 | id="text202-7-2-7" | ||
842 | font-size="192" | ||
843 | font-weight="bold" | ||
844 | font-style="normal" | ||
845 | y="1547.8876" | ||
846 | x="4417.6396" | ||
847 | xml:space="preserve">dyntick_save_progress_counter()</text> | ||
848 | <g | ||
849 | style="fill:none;stroke-width:0.025in" | ||
850 | transform="translate(6501.9719,-10685.904)" | ||
851 | id="g3188"> | ||
852 | <g | ||
853 | id="g3107" | ||
854 | transform="translate(947.90548,11584.029)"> | ||
855 | <rect | ||
856 | id="rect112" | ||
857 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
858 | rx="0" | ||
859 | height="1370.8721" | ||
860 | width="2809.1992" | ||
861 | y="949.37109" | ||
862 | x="2084.55" /> | ||
863 | <rect | ||
864 | id="rect112-3" | ||
865 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
866 | rx="0" | ||
867 | height="1294.8468" | ||
868 | width="2809.1992" | ||
869 | y="1025.3964" | ||
870 | x="2084.55" /> | ||
871 | </g> | ||
872 | <text | ||
873 | xml:space="preserve" | ||
874 | x="5452.3052" | ||
875 | y="13844.535" | ||
876 | font-style="normal" | ||
877 | font-weight="bold" | ||
878 | font-size="192" | ||
879 | id="text202-7-5-1-2-3-7" | ||
880 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
881 | sodipodi:linespacing="125%"><tspan | ||
882 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
883 | id="tspan3104-6-5">Root</tspan></text> | ||
884 | <text | ||
885 | xml:space="preserve" | ||
886 | x="3158.8521" | ||
887 | y="13313.027" | ||
888 | font-style="normal" | ||
889 | font-weight="bold" | ||
890 | font-size="192" | ||
891 | id="text202" | ||
892 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
893 | </g> | ||
894 | <text | ||
895 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
896 | id="text202-7-2-7-2" | ||
897 | font-size="192" | ||
898 | font-weight="bold" | ||
899 | font-style="normal" | ||
900 | y="1858.8729" | ||
901 | x="4414.1836" | ||
902 | xml:space="preserve">rcu_implicit_dynticks_qs()</text> | ||
903 | <text | ||
904 | xml:space="preserve" | ||
905 | x="14659.87" | ||
906 | y="7002.561" | ||
907 | font-style="normal" | ||
908 | font-weight="bold" | ||
909 | font-size="192" | ||
910 | id="text202-62" | ||
911 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
912 | <g | ||
913 | id="g4504" | ||
914 | transform="translate(14776.087,-12503.687)"> | ||
915 | <path | ||
916 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
917 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
918 | sodipodi:ry="39.550262" | ||
919 | sodipodi:rx="65.917107" | ||
920 | sodipodi:cy="345.54001" | ||
921 | sodipodi:cx="319.379" | ||
922 | id="path3089" | ||
923 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
924 | sodipodi:type="arc" /> | ||
925 | <text | ||
926 | sodipodi:linespacing="125%" | ||
927 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
928 | id="text202-7-5-1-2" | ||
929 | font-size="192" | ||
930 | font-weight="bold" | ||
931 | font-style="normal" | ||
932 | y="16835.086" | ||
933 | x="4409.043" | ||
934 | xml:space="preserve"><tspan | ||
935 | id="tspan3104" | ||
936 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
937 | <text | ||
938 | sodipodi:linespacing="125%" | ||
939 | id="text3110" | ||
940 | y="17055.541" | ||
941 | x="4579.373" | ||
942 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
943 | xml:space="preserve"><tspan | ||
944 | y="17055.541" | ||
945 | x="4579.373" | ||
946 | id="tspan3112" | ||
947 | sodipodi:role="line">read-side</tspan></text> | ||
948 | <text | ||
949 | sodipodi:linespacing="125%" | ||
950 | id="text3114" | ||
951 | y="17297.08" | ||
952 | x="4584.8276" | ||
953 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
954 | xml:space="preserve"><tspan | ||
955 | y="17297.08" | ||
956 | x="4584.8276" | ||
957 | id="tspan3116" | ||
958 | sodipodi:role="line">critical section</tspan></text> | ||
959 | </g> | ||
960 | <g | ||
961 | id="g3148-9-9" | ||
962 | transform="translate(14747.877,9978.6315)"> | ||
963 | <rect | ||
964 | x="3592.3828" | ||
965 | y="-4715.7246" | ||
966 | width="3164.783" | ||
967 | height="769.99048" | ||
968 | rx="0" | ||
969 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
970 | id="rect118-3-5-1-3" | ||
971 | ry="0" /> | ||
972 | <text | ||
973 | xml:space="preserve" | ||
974 | x="3745.7725" | ||
975 | y="-4418.6582" | ||
976 | font-style="normal" | ||
977 | font-weight="bold" | ||
978 | font-size="192" | ||
979 | id="text202-7-5-3-27-6" | ||
980 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_dynticks_eqs_enter()</text> | ||
981 | <text | ||
982 | xml:space="preserve" | ||
983 | x="3745.7725" | ||
984 | y="-4165.7954" | ||
985 | font-style="normal" | ||
986 | font-weight="bold" | ||
987 | font-size="192" | ||
988 | id="text202-7-5-3-27-0-0" | ||
989 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">atomic_add_return()</text> | ||
990 | </g> | ||
991 | <g | ||
992 | id="g3148-9-9-2" | ||
993 | transform="translate(14747.877,12639.736)"> | ||
994 | <rect | ||
995 | x="3592.3828" | ||
996 | y="-4715.7246" | ||
997 | width="3164.783" | ||
998 | height="769.99048" | ||
999 | rx="0" | ||
1000 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
1001 | id="rect118-3-5-1-3-6" | ||
1002 | ry="0" /> | ||
1003 | <text | ||
1004 | xml:space="preserve" | ||
1005 | x="3745.7725" | ||
1006 | y="-4418.6582" | ||
1007 | font-style="normal" | ||
1008 | font-weight="bold" | ||
1009 | font-size="192" | ||
1010 | id="text202-7-5-3-27-6-1" | ||
1011 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_dynticks_eqs_exit()</text> | ||
1012 | <text | ||
1013 | xml:space="preserve" | ||
1014 | x="3745.7725" | ||
1015 | y="-4165.7954" | ||
1016 | font-style="normal" | ||
1017 | font-weight="bold" | ||
1018 | font-size="192" | ||
1019 | id="text202-7-5-3-27-0-0-8" | ||
1020 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">atomic_add_return()</text> | ||
1021 | </g> | ||
1022 | <g | ||
1023 | id="g4504-7" | ||
1024 | transform="translate(14794.893,-7275.5109)"> | ||
1025 | <path | ||
1026 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
1027 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
1028 | sodipodi:ry="39.550262" | ||
1029 | sodipodi:rx="65.917107" | ||
1030 | sodipodi:cy="345.54001" | ||
1031 | sodipodi:cx="319.379" | ||
1032 | id="path3084-9" | ||
1033 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
1034 | sodipodi:type="arc" /> | ||
1035 | <text | ||
1036 | sodipodi:linespacing="125%" | ||
1037 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1038 | id="text202-7-5-1-2-2" | ||
1039 | font-size="192" | ||
1040 | font-weight="bold" | ||
1041 | font-style="normal" | ||
1042 | y="16835.086" | ||
1043 | x="4409.043" | ||
1044 | xml:space="preserve"><tspan | ||
1045 | id="tspan3104-0" | ||
1046 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
1047 | <text | ||
1048 | sodipodi:linespacing="125%" | ||
1049 | id="text3110-2" | ||
1050 | y="17055.541" | ||
1051 | x="4579.373" | ||
1052 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1053 | xml:space="preserve"><tspan | ||
1054 | y="17055.541" | ||
1055 | x="4579.373" | ||
1056 | id="tspan3112-3" | ||
1057 | sodipodi:role="line">read-side</tspan></text> | ||
1058 | <text | ||
1059 | sodipodi:linespacing="125%" | ||
1060 | id="text3114-7" | ||
1061 | y="17297.08" | ||
1062 | x="4584.8276" | ||
1063 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1064 | xml:space="preserve"><tspan | ||
1065 | y="17297.08" | ||
1066 | x="4584.8276" | ||
1067 | id="tspan3116-5" | ||
1068 | sodipodi:role="line">critical section</tspan></text> | ||
1069 | </g> | ||
1070 | <g | ||
1071 | id="g4504-6" | ||
1072 | transform="translate(-2953.0872,-13662.506)"> | ||
1073 | <path | ||
1074 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
1075 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
1076 | sodipodi:ry="39.550262" | ||
1077 | sodipodi:rx="65.917107" | ||
1078 | sodipodi:cy="345.54001" | ||
1079 | sodipodi:cx="319.379" | ||
1080 | id="path3084-1" | ||
1081 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
1082 | sodipodi:type="arc" /> | ||
1083 | <text | ||
1084 | sodipodi:linespacing="125%" | ||
1085 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1086 | id="text202-7-5-1-2-8" | ||
1087 | font-size="192" | ||
1088 | font-weight="bold" | ||
1089 | font-style="normal" | ||
1090 | y="16835.086" | ||
1091 | x="4409.043" | ||
1092 | xml:space="preserve"><tspan | ||
1093 | id="tspan3104-7" | ||
1094 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
1095 | <text | ||
1096 | sodipodi:linespacing="125%" | ||
1097 | id="text3110-9" | ||
1098 | y="17055.541" | ||
1099 | x="4579.373" | ||
1100 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1101 | xml:space="preserve"><tspan | ||
1102 | y="17055.541" | ||
1103 | x="4579.373" | ||
1104 | id="tspan3112-2" | ||
1105 | sodipodi:role="line">read-side</tspan></text> | ||
1106 | <text | ||
1107 | sodipodi:linespacing="125%" | ||
1108 | id="text3114-0" | ||
1109 | y="17297.08" | ||
1110 | x="4584.8276" | ||
1111 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1112 | xml:space="preserve"><tspan | ||
1113 | y="17297.08" | ||
1114 | x="4584.8276" | ||
1115 | id="tspan3116-2" | ||
1116 | sodipodi:role="line">critical section</tspan></text> | ||
1117 | </g> | ||
1118 | <g | ||
1119 | id="g3148-9-9-3" | ||
1120 | transform="translate(-3554.8919,9313.0075)"> | ||
1121 | <rect | ||
1122 | x="3592.3828" | ||
1123 | y="-4981.6865" | ||
1124 | width="3728.9751" | ||
1125 | height="2265.0989" | ||
1126 | rx="0" | ||
1127 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
1128 | id="rect118-3-5-1-3-7" | ||
1129 | ry="0" /> | ||
1130 | <text | ||
1131 | xml:space="preserve" | ||
1132 | x="3745.7725" | ||
1133 | y="-4684.6201" | ||
1134 | font-style="normal" | ||
1135 | font-weight="bold" | ||
1136 | font-size="192" | ||
1137 | id="text202-7-5-3-27-6-5" | ||
1138 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_report_dead()</text> | ||
1139 | <text | ||
1140 | xml:space="preserve" | ||
1141 | x="3745.7725" | ||
1142 | y="-4431.7573" | ||
1143 | font-style="normal" | ||
1144 | font-weight="bold" | ||
1145 | font-size="192" | ||
1146 | id="text202-7-5-3-27-0-0-9" | ||
1147 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_cleanup_dying_idle_cpu()</text> | ||
1148 | <g | ||
1149 | transform="translate(1783.3183,-5255.3491)" | ||
1150 | id="g3107-7-5" | ||
1151 | style="fill:none;stroke-width:0.025in"> | ||
1152 | <rect | ||
1153 | x="2084.55" | ||
1154 | y="949.37109" | ||
1155 | width="2809.1992" | ||
1156 | height="1370.8721" | ||
1157 | rx="0" | ||
1158 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1159 | id="rect112-5-3" /> | ||
1160 | <rect | ||
1161 | x="2084.55" | ||
1162 | y="1025.3964" | ||
1163 | width="2809.1992" | ||
1164 | height="1294.8468" | ||
1165 | rx="0" | ||
1166 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1167 | id="rect112-3-3-5" /> | ||
1168 | </g> | ||
1169 | <text | ||
1170 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1171 | id="text202-6-6-2-6" | ||
1172 | font-size="192" | ||
1173 | font-weight="bold" | ||
1174 | font-style="normal" | ||
1175 | y="-3526.4448" | ||
1176 | x="4241.8574" | ||
1177 | xml:space="preserve">->qsmaskinitnext</text> | ||
1178 | <text | ||
1179 | sodipodi:linespacing="125%" | ||
1180 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1181 | id="text202-7-5-1-2-3-2" | ||
1182 | font-size="192" | ||
1183 | font-weight="bold" | ||
1184 | font-style="normal" | ||
1185 | y="-2987.4167" | ||
1186 | x="6305.1484" | ||
1187 | xml:space="preserve"><tspan | ||
1188 | id="tspan3104-6-9" | ||
1189 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Leaf</tspan></text> | ||
1190 | </g> | ||
1191 | <g | ||
1192 | id="g4504-7-2" | ||
1193 | transform="translate(-2934.2807,-6492.8204)"> | ||
1194 | <path | ||
1195 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
1196 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
1197 | sodipodi:ry="39.550262" | ||
1198 | sodipodi:rx="65.917107" | ||
1199 | sodipodi:cy="345.54001" | ||
1200 | sodipodi:cx="319.379" | ||
1201 | id="path3084-9-2" | ||
1202 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
1203 | sodipodi:type="arc" /> | ||
1204 | <text | ||
1205 | sodipodi:linespacing="125%" | ||
1206 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1207 | id="text202-7-5-1-2-2-8" | ||
1208 | font-size="192" | ||
1209 | font-weight="bold" | ||
1210 | font-style="normal" | ||
1211 | y="16835.086" | ||
1212 | x="4409.043" | ||
1213 | xml:space="preserve"><tspan | ||
1214 | id="tspan3104-0-9" | ||
1215 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
1216 | <text | ||
1217 | sodipodi:linespacing="125%" | ||
1218 | id="text3110-2-7" | ||
1219 | y="17055.541" | ||
1220 | x="4579.373" | ||
1221 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1222 | xml:space="preserve"><tspan | ||
1223 | y="17055.541" | ||
1224 | x="4579.373" | ||
1225 | id="tspan3112-3-3" | ||
1226 | sodipodi:role="line">read-side</tspan></text> | ||
1227 | <text | ||
1228 | sodipodi:linespacing="125%" | ||
1229 | id="text3114-7-6" | ||
1230 | y="17297.08" | ||
1231 | x="4584.8276" | ||
1232 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1233 | xml:space="preserve"><tspan | ||
1234 | y="17297.08" | ||
1235 | x="4584.8276" | ||
1236 | id="tspan3116-5-1" | ||
1237 | sodipodi:role="line">critical section</tspan></text> | ||
1238 | </g> | ||
1239 | <g | ||
1240 | id="g3206" | ||
1241 | transform="translate(3999.5374,3999.1768)"> | ||
1242 | <rect | ||
1243 | ry="0" | ||
1244 | id="rect118-3-5-1-3-1" | ||
1245 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00058007, 60.00116001;stroke-dashoffset:0" | ||
1246 | rx="0" | ||
1247 | height="2265.0989" | ||
1248 | width="3728.9751" | ||
1249 | y="3382.2036" | ||
1250 | x="-3958.3845" /> | ||
1251 | <text | ||
1252 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1253 | id="text202-7-5-3-27-6-2" | ||
1254 | font-size="192" | ||
1255 | font-weight="bold" | ||
1256 | font-style="normal" | ||
1257 | y="3679.27" | ||
1258 | x="-3804.9949" | ||
1259 | xml:space="preserve">rcu_cpu_starting()</text> | ||
1260 | <g | ||
1261 | style="fill:none;stroke-width:0.025in" | ||
1262 | id="g3107-7-5-0" | ||
1263 | transform="translate(-5767.4491,3108.5424)"> | ||
1264 | <rect | ||
1265 | id="rect112-5-3-9" | ||
1266 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1267 | rx="0" | ||
1268 | height="1370.8721" | ||
1269 | width="2809.1992" | ||
1270 | y="949.37109" | ||
1271 | x="2084.55" /> | ||
1272 | <rect | ||
1273 | id="rect112-3-3-5-3" | ||
1274 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1275 | rx="0" | ||
1276 | height="1294.8468" | ||
1277 | width="2809.1992" | ||
1278 | y="1025.3964" | ||
1279 | x="2084.55" /> | ||
1280 | </g> | ||
1281 | <text | ||
1282 | xml:space="preserve" | ||
1283 | x="-3308.9099" | ||
1284 | y="4837.4453" | ||
1285 | font-style="normal" | ||
1286 | font-weight="bold" | ||
1287 | font-size="192" | ||
1288 | id="text202-6-6-2-6-6" | ||
1289 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinitnext</text> | ||
1290 | <text | ||
1291 | xml:space="preserve" | ||
1292 | x="-1245.6189" | ||
1293 | y="5376.4731" | ||
1294 | font-style="normal" | ||
1295 | font-weight="bold" | ||
1296 | font-size="192" | ||
1297 | id="text202-7-5-1-2-3-2-0" | ||
1298 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1299 | sodipodi:linespacing="125%"><tspan | ||
1300 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1301 | id="tspan3104-6-9-6">Leaf</tspan></text> | ||
1302 | </g> | ||
1303 | <path | ||
1304 | sodipodi:nodetypes="cc" | ||
1305 | inkscape:connector-curvature="0" | ||
1306 | id="path3134-9-0-3-1-3-6" | ||
1307 | d="m 15475.193,7360.7089 467.332,8.6247" | ||
1308 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
1309 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-init-1.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-init-1.svg new file mode 100644 index 000000000000..0161262904ec --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-init-1.svg | |||
@@ -0,0 +1,656 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="1039.3743" | ||
17 | height="677.72852" | ||
18 | viewBox="-44 -44 13821.733 9008.3597" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-gp-init-1.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | <marker | ||
178 | inkscape:stockid="Arrow2Lend" | ||
179 | orient="auto" | ||
180 | refY="0" | ||
181 | refX="0" | ||
182 | id="Arrow2Lend-3" | ||
183 | style="overflow:visible"> | ||
184 | <path | ||
185 | id="path3946-1" | ||
186 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
187 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
188 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
189 | inkscape:connector-curvature="0" /> | ||
190 | </marker> | ||
191 | <marker | ||
192 | inkscape:stockid="Arrow2Lend" | ||
193 | orient="auto" | ||
194 | refY="0" | ||
195 | refX="0" | ||
196 | id="Arrow2Lend-4" | ||
197 | style="overflow:visible"> | ||
198 | <path | ||
199 | id="path3946-7" | ||
200 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
201 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
202 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
203 | inkscape:connector-curvature="0" /> | ||
204 | </marker> | ||
205 | <marker | ||
206 | inkscape:stockid="Arrow2Lend" | ||
207 | orient="auto" | ||
208 | refY="0" | ||
209 | refX="0" | ||
210 | id="marker4880" | ||
211 | style="overflow:visible"> | ||
212 | <path | ||
213 | id="path4882" | ||
214 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
215 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
216 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
217 | inkscape:connector-curvature="0" /> | ||
218 | </marker> | ||
219 | <marker | ||
220 | inkscape:stockid="Arrow2Lend" | ||
221 | orient="auto" | ||
222 | refY="0" | ||
223 | refX="0" | ||
224 | id="Arrow2Lend-5" | ||
225 | style="overflow:visible"> | ||
226 | <path | ||
227 | id="path3946-0" | ||
228 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
229 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
230 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
231 | inkscape:connector-curvature="0" /> | ||
232 | </marker> | ||
233 | <marker | ||
234 | inkscape:stockid="Arrow2Lend" | ||
235 | orient="auto" | ||
236 | refY="0" | ||
237 | refX="0" | ||
238 | id="Arrow2Lend-6" | ||
239 | style="overflow:visible"> | ||
240 | <path | ||
241 | id="path3946-10" | ||
242 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
243 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
244 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
245 | inkscape:connector-curvature="0" /> | ||
246 | </marker> | ||
247 | <marker | ||
248 | inkscape:stockid="Arrow1Send" | ||
249 | orient="auto" | ||
250 | refY="0" | ||
251 | refX="0" | ||
252 | id="Arrow1Send-36" | ||
253 | style="overflow:visible"> | ||
254 | <path | ||
255 | id="path3940-7" | ||
256 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
257 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
258 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
259 | inkscape:connector-curvature="0" /> | ||
260 | </marker> | ||
261 | </defs> | ||
262 | <sodipodi:namedview | ||
263 | pagecolor="#ffffff" | ||
264 | bordercolor="#666666" | ||
265 | borderopacity="1" | ||
266 | objecttolerance="10" | ||
267 | gridtolerance="10" | ||
268 | guidetolerance="10" | ||
269 | inkscape:pageopacity="0" | ||
270 | inkscape:pageshadow="2" | ||
271 | inkscape:window-width="1087" | ||
272 | inkscape:window-height="1144" | ||
273 | id="namedview208" | ||
274 | showgrid="true" | ||
275 | inkscape:zoom="0.70710678" | ||
276 | inkscape:cx="617.89019" | ||
277 | inkscape:cy="636.57143" | ||
278 | inkscape:window-x="697" | ||
279 | inkscape:window-y="28" | ||
280 | inkscape:window-maximized="0" | ||
281 | inkscape:current-layer="svg2" | ||
282 | fit-margin-top="5" | ||
283 | fit-margin-right="5" | ||
284 | fit-margin-left="5" | ||
285 | fit-margin-bottom="5"> | ||
286 | <inkscape:grid | ||
287 | type="xygrid" | ||
288 | id="grid3059" | ||
289 | empspacing="5" | ||
290 | visible="true" | ||
291 | enabled="true" | ||
292 | snapvisiblegridlinesonly="true" | ||
293 | originx="1.6062488e-07px" | ||
294 | originy="10.7285px" /> | ||
295 | </sodipodi:namedview> | ||
296 | <path | ||
297 | sodipodi:nodetypes="cc" | ||
298 | inkscape:connector-curvature="0" | ||
299 | id="path3134-9-0-3" | ||
300 | d="m 6871.027,46.883461 0,8777.144039" | ||
301 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
302 | <g | ||
303 | style="fill:none;stroke-width:0.025in" | ||
304 | transform="translate(2450.4075,-10679.115)" | ||
305 | id="g3188"> | ||
306 | <text | ||
307 | xml:space="preserve" | ||
308 | x="3305.5364" | ||
309 | y="13255.592" | ||
310 | font-style="normal" | ||
311 | font-weight="bold" | ||
312 | font-size="192" | ||
313 | id="text202" | ||
314 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">rsp->gpnum++</text> | ||
315 | <g | ||
316 | id="g3107" | ||
317 | transform="translate(947.90548,11584.029)"> | ||
318 | <rect | ||
319 | id="rect112" | ||
320 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
321 | rx="0" | ||
322 | height="1370.8721" | ||
323 | width="2809.1992" | ||
324 | y="949.37109" | ||
325 | x="2084.55" /> | ||
326 | <rect | ||
327 | id="rect112-3" | ||
328 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
329 | rx="0" | ||
330 | height="1294.8468" | ||
331 | width="2809.1992" | ||
332 | y="1025.3964" | ||
333 | x="2084.55" /> | ||
334 | </g> | ||
335 | <text | ||
336 | xml:space="preserve" | ||
337 | x="5452.3052" | ||
338 | y="13844.535" | ||
339 | font-style="normal" | ||
340 | font-weight="bold" | ||
341 | font-size="192" | ||
342 | id="text202-7-5-1-2-3-7" | ||
343 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
344 | sodipodi:linespacing="125%"><tspan | ||
345 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
346 | id="tspan3104-6-5">Root</tspan></text> | ||
347 | </g> | ||
348 | <rect | ||
349 | ry="0" | ||
350 | id="rect118" | ||
351 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115769;stroke-dashoffset:0" | ||
352 | rx="0" | ||
353 | height="6844.4546" | ||
354 | width="13658.751" | ||
355 | y="1371.6335" | ||
356 | x="37.490932" /> | ||
357 | <text | ||
358 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
359 | id="text202-7" | ||
360 | font-size="192" | ||
361 | font-weight="bold" | ||
362 | font-style="normal" | ||
363 | y="1631.0878" | ||
364 | x="153.26733" | ||
365 | xml:space="preserve">rcu_gp_init()</text> | ||
366 | <g | ||
367 | style="fill:none;stroke-width:0.025in" | ||
368 | transform="translate(2329.9439,-10642.748)" | ||
369 | id="g3147"> | ||
370 | <g | ||
371 | style="fill:none;stroke-width:0.025in" | ||
372 | id="g3107-6" | ||
373 | transform="translate(3054.6101,13760.052)"> | ||
374 | <rect | ||
375 | id="rect112-7" | ||
376 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
377 | rx="0" | ||
378 | height="1370.8721" | ||
379 | width="2809.1992" | ||
380 | y="949.37109" | ||
381 | x="2084.55" /> | ||
382 | <rect | ||
383 | id="rect112-3-5" | ||
384 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
385 | rx="0" | ||
386 | height="1294.8468" | ||
387 | width="2809.1992" | ||
388 | y="1025.3964" | ||
389 | x="2084.55" /> | ||
390 | </g> | ||
391 | </g> | ||
392 | <g | ||
393 | style="fill:none;stroke-width:0.025in" | ||
394 | transform="translate(3181.0246,-10679.115)" | ||
395 | id="g3153"> | ||
396 | <g | ||
397 | style="fill:none;stroke-width:0.025in" | ||
398 | id="g3107-6-9" | ||
399 | transform="translate(5213.0126,16008.808)"> | ||
400 | <rect | ||
401 | id="rect112-7-1" | ||
402 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
403 | rx="0" | ||
404 | height="1370.8721" | ||
405 | width="2809.1992" | ||
406 | y="949.37109" | ||
407 | x="2084.55" /> | ||
408 | <rect | ||
409 | id="rect112-3-5-2" | ||
410 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
411 | rx="0" | ||
412 | height="1294.8468" | ||
413 | width="2809.1992" | ||
414 | y="1025.3964" | ||
415 | x="2084.55" /> | ||
416 | </g> | ||
417 | <text | ||
418 | xml:space="preserve" | ||
419 | x="9717.4141" | ||
420 | y="18269.314" | ||
421 | font-style="normal" | ||
422 | font-weight="bold" | ||
423 | font-size="192" | ||
424 | id="text202-7-5-1-2-3-7-35-7" | ||
425 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
426 | sodipodi:linespacing="125%"><tspan | ||
427 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
428 | id="tspan3104-6-5-6-0">Leaf</tspan></text> | ||
429 | </g> | ||
430 | <g | ||
431 | transform="translate(-1642.5375,-10642.748)" | ||
432 | id="g3147-3" | ||
433 | style="fill:none;stroke-width:0.025in"> | ||
434 | <g | ||
435 | style="fill:none;stroke-width:0.025in" | ||
436 | id="g3107-6-6" | ||
437 | transform="translate(3054.6101,13760.052)"> | ||
438 | <rect | ||
439 | id="rect112-7-0" | ||
440 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
441 | rx="0" | ||
442 | height="1370.8721" | ||
443 | width="2809.1992" | ||
444 | y="949.37109" | ||
445 | x="2084.55" /> | ||
446 | <rect | ||
447 | id="rect112-3-5-6" | ||
448 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
449 | rx="0" | ||
450 | height="1294.8468" | ||
451 | width="2809.1992" | ||
452 | y="1025.3964" | ||
453 | x="2084.55" /> | ||
454 | </g> | ||
455 | </g> | ||
456 | <g | ||
457 | transform="translate(-151.71726,-10679.115)" | ||
458 | id="g3153-2" | ||
459 | style="fill:none;stroke-width:0.025in"> | ||
460 | <g | ||
461 | style="fill:none;stroke-width:0.025in" | ||
462 | id="g3107-6-9-6" | ||
463 | transform="translate(5213.0126,16008.808)"> | ||
464 | <rect | ||
465 | id="rect112-7-1-1" | ||
466 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
467 | rx="0" | ||
468 | height="1370.8721" | ||
469 | width="2809.1992" | ||
470 | y="949.37109" | ||
471 | x="2084.55" /> | ||
472 | <rect | ||
473 | id="rect112-3-5-2-8" | ||
474 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
475 | rx="0" | ||
476 | height="1294.8468" | ||
477 | width="2809.1992" | ||
478 | y="1025.3964" | ||
479 | x="2084.55" /> | ||
480 | </g> | ||
481 | <text | ||
482 | xml:space="preserve" | ||
483 | x="9717.4141" | ||
484 | y="18269.314" | ||
485 | font-style="normal" | ||
486 | font-weight="bold" | ||
487 | font-size="192" | ||
488 | id="text202-7-5-1-2-3-7-35-7-7" | ||
489 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
490 | sodipodi:linespacing="125%"><tspan | ||
491 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
492 | id="tspan3104-6-5-6-0-9">Leaf</tspan></text> | ||
493 | </g> | ||
494 | <g | ||
495 | transform="translate(-3484.4587,-10679.115)" | ||
496 | id="g3153-20" | ||
497 | style="fill:none;stroke-width:0.025in"> | ||
498 | <g | ||
499 | style="fill:none;stroke-width:0.025in" | ||
500 | id="g3107-6-9-2" | ||
501 | transform="translate(5213.0126,16008.808)"> | ||
502 | <rect | ||
503 | id="rect112-7-1-3" | ||
504 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
505 | rx="0" | ||
506 | height="1370.8721" | ||
507 | width="2809.1992" | ||
508 | y="949.37109" | ||
509 | x="2084.55" /> | ||
510 | <rect | ||
511 | id="rect112-3-5-2-7" | ||
512 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
513 | rx="0" | ||
514 | height="1294.8468" | ||
515 | width="2809.1992" | ||
516 | y="1025.3964" | ||
517 | x="2084.55" /> | ||
518 | </g> | ||
519 | <text | ||
520 | xml:space="preserve" | ||
521 | x="9717.4141" | ||
522 | y="18269.314" | ||
523 | font-style="normal" | ||
524 | font-weight="bold" | ||
525 | font-size="192" | ||
526 | id="text202-7-5-1-2-3-7-35-7-5" | ||
527 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
528 | sodipodi:linespacing="125%"><tspan | ||
529 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
530 | id="tspan3104-6-5-6-0-92">Leaf</tspan></text> | ||
531 | </g> | ||
532 | <g | ||
533 | transform="translate(-6817.1998,-10679.115)" | ||
534 | id="g3153-28" | ||
535 | style="fill:none;stroke-width:0.025in"> | ||
536 | <g | ||
537 | style="fill:none;stroke-width:0.025in" | ||
538 | id="g3107-6-9-9" | ||
539 | transform="translate(5213.0126,16008.808)"> | ||
540 | <rect | ||
541 | id="rect112-7-1-7" | ||
542 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
543 | rx="0" | ||
544 | height="1370.8721" | ||
545 | width="2809.1992" | ||
546 | y="949.37109" | ||
547 | x="2084.55" /> | ||
548 | <rect | ||
549 | id="rect112-3-5-2-3" | ||
550 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
551 | rx="0" | ||
552 | height="1294.8468" | ||
553 | width="2809.1992" | ||
554 | y="1025.3964" | ||
555 | x="2084.55" /> | ||
556 | </g> | ||
557 | <text | ||
558 | xml:space="preserve" | ||
559 | x="9717.4141" | ||
560 | y="18269.314" | ||
561 | font-style="normal" | ||
562 | font-weight="bold" | ||
563 | font-size="192" | ||
564 | id="text202-7-5-1-2-3-7-35-7-6" | ||
565 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
566 | sodipodi:linespacing="125%"><tspan | ||
567 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
568 | id="tspan3104-6-5-6-0-1">Leaf</tspan></text> | ||
569 | </g> | ||
570 | <path | ||
571 | style="fill:none;stroke:#000000;stroke-width:13.29812908px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
572 | d="m 5473.7572,3203.2219 -582.9982,865.094" | ||
573 | id="path3414" | ||
574 | inkscape:connector-curvature="0" /> | ||
575 | <path | ||
576 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
577 | d="m 8282.5391,3203.4839 582.9982,865.094" | ||
578 | id="path3414-9" | ||
579 | inkscape:connector-curvature="0" /> | ||
580 | <path | ||
581 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
582 | d="m 3523.1241,5416.3989 -582.9982,865.094" | ||
583 | id="path3414-8" | ||
584 | inkscape:connector-curvature="0" /> | ||
585 | <path | ||
586 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
587 | d="m 10268.171,5416.6609 583,865.094" | ||
588 | id="path3414-9-4" | ||
589 | inkscape:connector-curvature="0" /> | ||
590 | <path | ||
591 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
592 | d="m 4939.6205,5416.3989 0,846.288" | ||
593 | id="path3414-8-3" | ||
594 | inkscape:connector-curvature="0" | ||
595 | sodipodi:nodetypes="cc" /> | ||
596 | <path | ||
597 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
598 | d="m 8816.5958,5442.9949 0,846.288" | ||
599 | id="path3414-8-3-6" | ||
600 | inkscape:connector-curvature="0" | ||
601 | sodipodi:nodetypes="cc" /> | ||
602 | <g | ||
603 | id="g4504-3-9" | ||
604 | transform="translate(4866.0367,-16425.339)"> | ||
605 | <path | ||
606 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
607 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
608 | sodipodi:ry="39.550262" | ||
609 | sodipodi:rx="65.917107" | ||
610 | sodipodi:cy="345.54001" | ||
611 | sodipodi:cx="319.379" | ||
612 | id="path3084-6-1" | ||
613 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
614 | sodipodi:type="arc" /> | ||
615 | <text | ||
616 | sodipodi:linespacing="125%" | ||
617 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
618 | id="text202-7-5-1-2-7-2" | ||
619 | font-size="192" | ||
620 | font-weight="bold" | ||
621 | font-style="normal" | ||
622 | y="16888.277" | ||
623 | x="4344.877" | ||
624 | xml:space="preserve"><tspan | ||
625 | id="tspan3104-5-7" | ||
626 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">End of</tspan></text> | ||
627 | <text | ||
628 | sodipodi:linespacing="125%" | ||
629 | id="text3110-3-0" | ||
630 | y="17119.1" | ||
631 | x="4578.7886" | ||
632 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
633 | xml:space="preserve"><tspan | ||
634 | y="17119.1" | ||
635 | x="4578.7886" | ||
636 | id="tspan3112-5-9" | ||
637 | sodipodi:role="line">Last Grace</tspan></text> | ||
638 | <text | ||
639 | sodipodi:linespacing="125%" | ||
640 | id="text3114-6-3" | ||
641 | y="17350.271" | ||
642 | x="4581.7886" | ||
643 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
644 | xml:space="preserve"><tspan | ||
645 | y="17350.271" | ||
646 | x="4581.7886" | ||
647 | id="tspan3116-2-6" | ||
648 | sodipodi:role="line">Period</tspan></text> | ||
649 | </g> | ||
650 | <path | ||
651 | sodipodi:nodetypes="cc" | ||
652 | inkscape:connector-curvature="0" | ||
653 | id="path3134-9-0-3-5" | ||
654 | d="m 8546.5914,605.78414 -1595.7755,0" | ||
655 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send-36)" /> | ||
656 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-init-2.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-init-2.svg new file mode 100644 index 000000000000..4d956a732685 --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-init-2.svg | |||
@@ -0,0 +1,656 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="1037.9602" | ||
17 | height="666.38184" | ||
18 | viewBox="-44 -44 13802.928 8857.5401" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-gp-init-2.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | <marker | ||
178 | inkscape:stockid="Arrow2Lend" | ||
179 | orient="auto" | ||
180 | refY="0" | ||
181 | refX="0" | ||
182 | id="Arrow2Lend-3" | ||
183 | style="overflow:visible"> | ||
184 | <path | ||
185 | id="path3946-1" | ||
186 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
187 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
188 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
189 | inkscape:connector-curvature="0" /> | ||
190 | </marker> | ||
191 | <marker | ||
192 | inkscape:stockid="Arrow2Lend" | ||
193 | orient="auto" | ||
194 | refY="0" | ||
195 | refX="0" | ||
196 | id="Arrow2Lend-4" | ||
197 | style="overflow:visible"> | ||
198 | <path | ||
199 | id="path3946-7" | ||
200 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
201 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
202 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
203 | inkscape:connector-curvature="0" /> | ||
204 | </marker> | ||
205 | <marker | ||
206 | inkscape:stockid="Arrow2Lend" | ||
207 | orient="auto" | ||
208 | refY="0" | ||
209 | refX="0" | ||
210 | id="marker4880" | ||
211 | style="overflow:visible"> | ||
212 | <path | ||
213 | id="path4882" | ||
214 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
215 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
216 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
217 | inkscape:connector-curvature="0" /> | ||
218 | </marker> | ||
219 | <marker | ||
220 | inkscape:stockid="Arrow2Lend" | ||
221 | orient="auto" | ||
222 | refY="0" | ||
223 | refX="0" | ||
224 | id="Arrow2Lend-5" | ||
225 | style="overflow:visible"> | ||
226 | <path | ||
227 | id="path3946-0" | ||
228 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
229 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
230 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
231 | inkscape:connector-curvature="0" /> | ||
232 | </marker> | ||
233 | <marker | ||
234 | inkscape:stockid="Arrow2Lend" | ||
235 | orient="auto" | ||
236 | refY="0" | ||
237 | refX="0" | ||
238 | id="Arrow2Lend-6" | ||
239 | style="overflow:visible"> | ||
240 | <path | ||
241 | id="path3946-10" | ||
242 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
243 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
244 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
245 | inkscape:connector-curvature="0" /> | ||
246 | </marker> | ||
247 | </defs> | ||
248 | <sodipodi:namedview | ||
249 | pagecolor="#ffffff" | ||
250 | bordercolor="#666666" | ||
251 | borderopacity="1" | ||
252 | objecttolerance="10" | ||
253 | gridtolerance="10" | ||
254 | guidetolerance="10" | ||
255 | inkscape:pageopacity="0" | ||
256 | inkscape:pageshadow="2" | ||
257 | inkscape:window-width="1087" | ||
258 | inkscape:window-height="1144" | ||
259 | id="namedview208" | ||
260 | showgrid="false" | ||
261 | inkscape:zoom="0.79710462" | ||
262 | inkscape:cx="564.27119" | ||
263 | inkscape:cy="397.32188" | ||
264 | inkscape:window-x="833" | ||
265 | inkscape:window-y="28" | ||
266 | inkscape:window-maximized="0" | ||
267 | inkscape:current-layer="svg2" | ||
268 | fit-margin-top="5" | ||
269 | fit-margin-right="5" | ||
270 | fit-margin-left="5" | ||
271 | fit-margin-bottom="5" /> | ||
272 | <path | ||
273 | sodipodi:nodetypes="cccccccccccccccccccccccccccc" | ||
274 | inkscape:connector-curvature="0" | ||
275 | id="path3134-9-0-3" | ||
276 | d="m 6861.6904,46.438525 -2.8276,1315.668775 -5343.8436,17.1194 -2.8276,6561.7446 2039.0799,17.963 -2.7042,-2144.1399 -491.6705,-0.2109 -2.7042,-1993.6887 1487.7179,-4.7279 -17.8,1812.453 2017.2374,-7.6434 4.9532,-2151.5723 -1405.5264,11.163 -10.919,-1891.1468 1739.2164,-2.7175 -13.2006,4234.2295 -1701.3595,1.3953 -8.7841,2107.7116 1702.6392,-4.8334 33.4144,-1867.7167 1312.2492,12.9229 14.608,1818.3367 2000.0063,20.4217 -12.279,-1841.4113 1304.168,1.6154 -12.279,2032.7059 -4638.6515,1.6154 19.5828,569.0378" | ||
277 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
278 | <rect | ||
279 | ry="0" | ||
280 | id="rect118" | ||
281 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115769;stroke-dashoffset:0" | ||
282 | rx="0" | ||
283 | height="7653.1299" | ||
284 | width="13639.945" | ||
285 | y="555.69745" | ||
286 | x="37.490929" /> | ||
287 | <text | ||
288 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
289 | id="text202-7" | ||
290 | font-size="192" | ||
291 | font-weight="bold" | ||
292 | font-style="normal" | ||
293 | y="799.34259" | ||
294 | x="134.46091" | ||
295 | xml:space="preserve">rcu_gp_init()</text> | ||
296 | <g | ||
297 | style="fill:none;stroke-width:0.025in" | ||
298 | transform="translate(2311.1375,-10650.009)" | ||
299 | id="g3147"> | ||
300 | <g | ||
301 | style="fill:none;stroke-width:0.025in" | ||
302 | id="g3107-6" | ||
303 | transform="translate(3054.6101,13760.052)"> | ||
304 | <rect | ||
305 | id="rect112-7" | ||
306 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
307 | rx="0" | ||
308 | height="1370.8721" | ||
309 | width="2809.1992" | ||
310 | y="949.37109" | ||
311 | x="2084.55" /> | ||
312 | <rect | ||
313 | id="rect112-3-5" | ||
314 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
315 | rx="0" | ||
316 | height="1294.8468" | ||
317 | width="2809.1992" | ||
318 | y="1025.3964" | ||
319 | x="2084.55" /> | ||
320 | </g> | ||
321 | </g> | ||
322 | <g | ||
323 | style="fill:none;stroke-width:0.025in" | ||
324 | transform="translate(3162.2182,-10686.376)" | ||
325 | id="g3153"> | ||
326 | <g | ||
327 | style="fill:none;stroke-width:0.025in" | ||
328 | id="g3107-6-9" | ||
329 | transform="translate(5213.0126,16008.808)"> | ||
330 | <rect | ||
331 | id="rect112-7-1" | ||
332 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
333 | rx="0" | ||
334 | height="1370.8721" | ||
335 | width="2809.1992" | ||
336 | y="949.37109" | ||
337 | x="2084.55" /> | ||
338 | <rect | ||
339 | id="rect112-3-5-2" | ||
340 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
341 | rx="0" | ||
342 | height="1294.8468" | ||
343 | width="2809.1992" | ||
344 | y="1025.3964" | ||
345 | x="2084.55" /> | ||
346 | </g> | ||
347 | <text | ||
348 | xml:space="preserve" | ||
349 | x="9717.4141" | ||
350 | y="18269.314" | ||
351 | font-style="normal" | ||
352 | font-weight="bold" | ||
353 | font-size="192" | ||
354 | id="text202-7-5-1-2-3-7-35-7" | ||
355 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
356 | sodipodi:linespacing="125%"><tspan | ||
357 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
358 | id="tspan3104-6-5-6-0">Leaf</tspan></text> | ||
359 | </g> | ||
360 | <g | ||
361 | transform="translate(-1661.3439,-10650.009)" | ||
362 | id="g3147-3" | ||
363 | style="fill:none;stroke-width:0.025in"> | ||
364 | <g | ||
365 | style="fill:none;stroke-width:0.025in" | ||
366 | id="g3107-6-6" | ||
367 | transform="translate(3054.6101,13760.052)"> | ||
368 | <rect | ||
369 | id="rect112-7-0" | ||
370 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
371 | rx="0" | ||
372 | height="1370.8721" | ||
373 | width="2809.1992" | ||
374 | y="949.37109" | ||
375 | x="2084.55" /> | ||
376 | <rect | ||
377 | id="rect112-3-5-6" | ||
378 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
379 | rx="0" | ||
380 | height="1294.8468" | ||
381 | width="2809.1992" | ||
382 | y="1025.3964" | ||
383 | x="2084.55" /> | ||
384 | </g> | ||
385 | <text | ||
386 | xml:space="preserve" | ||
387 | x="5398.415" | ||
388 | y="15310.093" | ||
389 | font-style="normal" | ||
390 | font-weight="bold" | ||
391 | font-size="192" | ||
392 | id="text202-8" | ||
393 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinit</text> | ||
394 | <text | ||
395 | xml:space="preserve" | ||
396 | x="5398.415" | ||
397 | y="15545.01" | ||
398 | font-style="normal" | ||
399 | font-weight="bold" | ||
400 | font-size="192" | ||
401 | id="text202-5-8" | ||
402 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinitnext</text> | ||
403 | </g> | ||
404 | <g | ||
405 | transform="translate(-170.52359,-10686.376)" | ||
406 | id="g3153-2" | ||
407 | style="fill:none;stroke-width:0.025in"> | ||
408 | <g | ||
409 | style="fill:none;stroke-width:0.025in" | ||
410 | id="g3107-6-9-6" | ||
411 | transform="translate(5213.0126,16008.808)"> | ||
412 | <rect | ||
413 | id="rect112-7-1-1" | ||
414 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
415 | rx="0" | ||
416 | height="1370.8721" | ||
417 | width="2809.1992" | ||
418 | y="949.37109" | ||
419 | x="2084.55" /> | ||
420 | <rect | ||
421 | id="rect112-3-5-2-8" | ||
422 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
423 | rx="0" | ||
424 | height="1294.8468" | ||
425 | width="2809.1992" | ||
426 | y="1025.3964" | ||
427 | x="2084.55" /> | ||
428 | </g> | ||
429 | <text | ||
430 | xml:space="preserve" | ||
431 | x="9717.4141" | ||
432 | y="18269.314" | ||
433 | font-style="normal" | ||
434 | font-weight="bold" | ||
435 | font-size="192" | ||
436 | id="text202-7-5-1-2-3-7-35-7-7" | ||
437 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
438 | sodipodi:linespacing="125%"><tspan | ||
439 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
440 | id="tspan3104-6-5-6-0-9">Leaf</tspan></text> | ||
441 | </g> | ||
442 | <g | ||
443 | transform="translate(-3503.2651,-10686.376)" | ||
444 | id="g3153-20" | ||
445 | style="fill:none;stroke-width:0.025in"> | ||
446 | <g | ||
447 | style="fill:none;stroke-width:0.025in" | ||
448 | id="g3107-6-9-2" | ||
449 | transform="translate(5213.0126,16008.808)"> | ||
450 | <rect | ||
451 | id="rect112-7-1-3" | ||
452 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
453 | rx="0" | ||
454 | height="1370.8721" | ||
455 | width="2809.1992" | ||
456 | y="949.37109" | ||
457 | x="2084.55" /> | ||
458 | <rect | ||
459 | id="rect112-3-5-2-7" | ||
460 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
461 | rx="0" | ||
462 | height="1294.8468" | ||
463 | width="2809.1992" | ||
464 | y="1025.3964" | ||
465 | x="2084.55" /> | ||
466 | </g> | ||
467 | <text | ||
468 | xml:space="preserve" | ||
469 | x="9717.4141" | ||
470 | y="18269.314" | ||
471 | font-style="normal" | ||
472 | font-weight="bold" | ||
473 | font-size="192" | ||
474 | id="text202-7-5-1-2-3-7-35-7-5" | ||
475 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
476 | sodipodi:linespacing="125%"><tspan | ||
477 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
478 | id="tspan3104-6-5-6-0-92">Leaf</tspan></text> | ||
479 | </g> | ||
480 | <g | ||
481 | transform="translate(-6836.0062,-10686.376)" | ||
482 | id="g3153-28" | ||
483 | style="fill:none;stroke-width:0.025in"> | ||
484 | <g | ||
485 | style="fill:none;stroke-width:0.025in" | ||
486 | id="g3107-6-9-9" | ||
487 | transform="translate(5213.0126,16008.808)"> | ||
488 | <rect | ||
489 | id="rect112-7-1-7" | ||
490 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
491 | rx="0" | ||
492 | height="1370.8721" | ||
493 | width="2809.1992" | ||
494 | y="949.37109" | ||
495 | x="2084.55" /> | ||
496 | <rect | ||
497 | id="rect112-3-5-2-3" | ||
498 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
499 | rx="0" | ||
500 | height="1294.8468" | ||
501 | width="2809.1992" | ||
502 | y="1025.3964" | ||
503 | x="2084.55" /> | ||
504 | </g> | ||
505 | <text | ||
506 | xml:space="preserve" | ||
507 | x="9717.4141" | ||
508 | y="18269.314" | ||
509 | font-style="normal" | ||
510 | font-weight="bold" | ||
511 | font-size="192" | ||
512 | id="text202-7-5-1-2-3-7-35-7-6" | ||
513 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
514 | sodipodi:linespacing="125%"><tspan | ||
515 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
516 | id="tspan3104-6-5-6-0-1">Leaf</tspan></text> | ||
517 | <text | ||
518 | xml:space="preserve" | ||
519 | x="7699.7246" | ||
520 | y="17734.791" | ||
521 | font-style="normal" | ||
522 | font-weight="bold" | ||
523 | font-size="192" | ||
524 | id="text202-4" | ||
525 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinit</text> | ||
526 | </g> | ||
527 | <path | ||
528 | style="fill:none;stroke:#000000;stroke-width:13.29812908px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
529 | d="m 5454.9508,3195.9607 -582.9982,865.094" | ||
530 | id="path3414" | ||
531 | inkscape:connector-curvature="0" /> | ||
532 | <path | ||
533 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
534 | d="m 8263.7327,3196.2227 582.9982,865.094" | ||
535 | id="path3414-9" | ||
536 | inkscape:connector-curvature="0" /> | ||
537 | <path | ||
538 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
539 | d="m 3504.3177,5409.1377 -582.9982,865.094" | ||
540 | id="path3414-8" | ||
541 | inkscape:connector-curvature="0" /> | ||
542 | <path | ||
543 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
544 | d="m 10249.365,5409.3997 583,865.094" | ||
545 | id="path3414-9-4" | ||
546 | inkscape:connector-curvature="0" /> | ||
547 | <path | ||
548 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
549 | d="m 4920.8141,5409.1377 0,846.288" | ||
550 | id="path3414-8-3" | ||
551 | inkscape:connector-curvature="0" | ||
552 | sodipodi:nodetypes="cc" /> | ||
553 | <path | ||
554 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
555 | d="m 8797.7894,5435.7337 0,846.288" | ||
556 | id="path3414-8-3-6" | ||
557 | inkscape:connector-curvature="0" | ||
558 | sodipodi:nodetypes="cc" /> | ||
559 | <rect | ||
560 | ry="0" | ||
561 | id="rect118-1" | ||
562 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057923, 60.00115846;stroke-dashoffset:0" | ||
563 | rx="0" | ||
564 | height="4418.4302" | ||
565 | width="4932.5845" | ||
566 | y="1492.2119" | ||
567 | x="2087.8708" /> | ||
568 | <text | ||
569 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
570 | id="text202-7-2" | ||
571 | font-size="192" | ||
572 | font-weight="bold" | ||
573 | font-style="normal" | ||
574 | y="1690.4336" | ||
575 | x="2223.3145" | ||
576 | xml:space="preserve" | ||
577 | sodipodi:linespacing="125%">rcu_init_new_rnp()<tspan | ||
578 | style="font-size:192px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
579 | id="tspan3307"> or</tspan></text> | ||
580 | <text | ||
581 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
582 | id="text202-7-2-7" | ||
583 | font-size="192" | ||
584 | font-weight="bold" | ||
585 | font-style="normal" | ||
586 | y="1958.5066" | ||
587 | x="2223.3145" | ||
588 | xml:space="preserve">rcu_cleanup_dead_rnp()</text> | ||
589 | <text | ||
590 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
591 | id="text202-7-2-7-6" | ||
592 | font-size="192" | ||
593 | font-weight="bold" | ||
594 | font-style="normal" | ||
595 | y="2227.4531" | ||
596 | x="2226.1592" | ||
597 | xml:space="preserve" | ||
598 | sodipodi:linespacing="125%"><tspan | ||
599 | style="font-size:192px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
600 | id="tspan3327">(optional)</tspan></text> | ||
601 | <g | ||
602 | style="fill:none;stroke-width:0.025in" | ||
603 | transform="translate(2431.6011,-10686.376)" | ||
604 | id="g3188"> | ||
605 | <text | ||
606 | xml:space="preserve" | ||
607 | x="3305.5364" | ||
608 | y="13255.592" | ||
609 | font-style="normal" | ||
610 | font-weight="bold" | ||
611 | font-size="192" | ||
612 | id="text202" | ||
613 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">->qsmaskinit</text> | ||
614 | <g | ||
615 | id="g3107" | ||
616 | transform="translate(947.90548,11584.029)"> | ||
617 | <rect | ||
618 | id="rect112" | ||
619 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
620 | rx="0" | ||
621 | height="1370.8721" | ||
622 | width="2809.1992" | ||
623 | y="949.37109" | ||
624 | x="2084.55" /> | ||
625 | <rect | ||
626 | id="rect112-3" | ||
627 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
628 | rx="0" | ||
629 | height="1294.8468" | ||
630 | width="2809.1992" | ||
631 | y="1025.3964" | ||
632 | x="2084.55" /> | ||
633 | </g> | ||
634 | <text | ||
635 | xml:space="preserve" | ||
636 | x="5452.3052" | ||
637 | y="13844.535" | ||
638 | font-style="normal" | ||
639 | font-weight="bold" | ||
640 | font-size="192" | ||
641 | id="text202-7-5-1-2-3-7" | ||
642 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
643 | sodipodi:linespacing="125%"><tspan | ||
644 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
645 | id="tspan3104-6-5">Root</tspan></text> | ||
646 | <text | ||
647 | xml:space="preserve" | ||
648 | x="3305.5364" | ||
649 | y="13490.509" | ||
650 | font-style="normal" | ||
651 | font-weight="bold" | ||
652 | font-size="192" | ||
653 | id="text202-5" | ||
654 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinitnext</text> | ||
655 | </g> | ||
656 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-init-3.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-init-3.svg new file mode 100644 index 000000000000..de6ecc51b00e --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-init-3.svg | |||
@@ -0,0 +1,632 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="1039.3743" | ||
17 | height="594.19171" | ||
18 | viewBox="-44 -44 13821.733 7897.9895" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-gp-init-2.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | <marker | ||
178 | inkscape:stockid="Arrow2Lend" | ||
179 | orient="auto" | ||
180 | refY="0" | ||
181 | refX="0" | ||
182 | id="Arrow2Lend-3" | ||
183 | style="overflow:visible"> | ||
184 | <path | ||
185 | id="path3946-1" | ||
186 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
187 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
188 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
189 | inkscape:connector-curvature="0" /> | ||
190 | </marker> | ||
191 | <marker | ||
192 | inkscape:stockid="Arrow2Lend" | ||
193 | orient="auto" | ||
194 | refY="0" | ||
195 | refX="0" | ||
196 | id="Arrow2Lend-4" | ||
197 | style="overflow:visible"> | ||
198 | <path | ||
199 | id="path3946-7" | ||
200 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
201 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
202 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
203 | inkscape:connector-curvature="0" /> | ||
204 | </marker> | ||
205 | <marker | ||
206 | inkscape:stockid="Arrow2Lend" | ||
207 | orient="auto" | ||
208 | refY="0" | ||
209 | refX="0" | ||
210 | id="marker4880" | ||
211 | style="overflow:visible"> | ||
212 | <path | ||
213 | id="path4882" | ||
214 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
215 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
216 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
217 | inkscape:connector-curvature="0" /> | ||
218 | </marker> | ||
219 | <marker | ||
220 | inkscape:stockid="Arrow2Lend" | ||
221 | orient="auto" | ||
222 | refY="0" | ||
223 | refX="0" | ||
224 | id="Arrow2Lend-5" | ||
225 | style="overflow:visible"> | ||
226 | <path | ||
227 | id="path3946-0" | ||
228 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
229 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
230 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
231 | inkscape:connector-curvature="0" /> | ||
232 | </marker> | ||
233 | <marker | ||
234 | inkscape:stockid="Arrow2Lend" | ||
235 | orient="auto" | ||
236 | refY="0" | ||
237 | refX="0" | ||
238 | id="Arrow2Lend-6" | ||
239 | style="overflow:visible"> | ||
240 | <path | ||
241 | id="path3946-10" | ||
242 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
243 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
244 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
245 | inkscape:connector-curvature="0" /> | ||
246 | </marker> | ||
247 | </defs> | ||
248 | <sodipodi:namedview | ||
249 | pagecolor="#ffffff" | ||
250 | bordercolor="#666666" | ||
251 | borderopacity="1" | ||
252 | objecttolerance="10" | ||
253 | gridtolerance="10" | ||
254 | guidetolerance="10" | ||
255 | inkscape:pageopacity="0" | ||
256 | inkscape:pageshadow="2" | ||
257 | inkscape:window-width="1087" | ||
258 | inkscape:window-height="1144" | ||
259 | id="namedview208" | ||
260 | showgrid="false" | ||
261 | inkscape:zoom="0.70710678" | ||
262 | inkscape:cx="617.89019" | ||
263 | inkscape:cy="625.84293" | ||
264 | inkscape:window-x="697" | ||
265 | inkscape:window-y="28" | ||
266 | inkscape:window-maximized="0" | ||
267 | inkscape:current-layer="svg2" | ||
268 | fit-margin-top="5" | ||
269 | fit-margin-right="5" | ||
270 | fit-margin-left="5" | ||
271 | fit-margin-bottom="5" /> | ||
272 | <path | ||
273 | sodipodi:nodetypes="cccccccccccccccccccccccc" | ||
274 | inkscape:connector-curvature="0" | ||
275 | id="path3134-9-0-3" | ||
276 | d="m 6899.3032,45.520244 -2.8276,2480.757056 -2316.0141,-1.687 -2.8276,2179.8547 2321.1758,-0.8434 -2.7042,-1843.2376 2404.5142,-0.2109 16.1022,1993.2669 -7783.8345,-4.7279 -16.7936,2120.3946 2033.1033,-23.5344 2.0128,-1866.561 2051.9097,14.0785 2.0128,1838.2987 1280.8475,-4.728 14.608,-1830.1039 1312.2492,12.9229 14.608,1818.3367 2000.0059,20.4217 -12.279,-1841.4113 1304.168,1.6154 -12.279,2032.7059 -4638.6511,1.6154 19.5828,569.0378" | ||
277 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
278 | <g | ||
279 | style="fill:none;stroke-width:0.025in" | ||
280 | transform="translate(2450.4075,-11647.329)" | ||
281 | id="g3188"> | ||
282 | <text | ||
283 | xml:space="preserve" | ||
284 | x="3305.5364" | ||
285 | y="13255.592" | ||
286 | font-style="normal" | ||
287 | font-weight="bold" | ||
288 | font-size="192" | ||
289 | id="text202" | ||
290 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
291 | <g | ||
292 | id="g3107" | ||
293 | transform="translate(947.90548,11584.029)"> | ||
294 | <rect | ||
295 | id="rect112" | ||
296 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
297 | rx="0" | ||
298 | height="1370.8721" | ||
299 | width="2809.1992" | ||
300 | y="949.37109" | ||
301 | x="2084.55" /> | ||
302 | <rect | ||
303 | id="rect112-3" | ||
304 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
305 | rx="0" | ||
306 | height="1294.8468" | ||
307 | width="2809.1992" | ||
308 | y="1025.3964" | ||
309 | x="2084.55" /> | ||
310 | </g> | ||
311 | <text | ||
312 | xml:space="preserve" | ||
313 | x="5452.3052" | ||
314 | y="13844.535" | ||
315 | font-style="normal" | ||
316 | font-weight="bold" | ||
317 | font-size="192" | ||
318 | id="text202-7-5-1-2-3-7" | ||
319 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
320 | sodipodi:linespacing="125%"><tspan | ||
321 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
322 | id="tspan3104-6-5">Root</tspan></text> | ||
323 | </g> | ||
324 | <rect | ||
325 | ry="0" | ||
326 | id="rect118" | ||
327 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115769;stroke-dashoffset:0" | ||
328 | rx="0" | ||
329 | height="6844.4546" | ||
330 | width="13658.751" | ||
331 | y="403.41983" | ||
332 | x="37.490932" /> | ||
333 | <text | ||
334 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
335 | id="text202-7" | ||
336 | font-size="192" | ||
337 | font-weight="bold" | ||
338 | font-style="normal" | ||
339 | y="662.8739" | ||
340 | x="153.26733" | ||
341 | xml:space="preserve">rcu_gp_init()</text> | ||
342 | <g | ||
343 | style="fill:none;stroke-width:0.025in" | ||
344 | transform="translate(2329.9439,-11610.962)" | ||
345 | id="g3147"> | ||
346 | <g | ||
347 | style="fill:none;stroke-width:0.025in" | ||
348 | id="g3107-6" | ||
349 | transform="translate(3054.6101,13760.052)"> | ||
350 | <rect | ||
351 | id="rect112-7" | ||
352 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
353 | rx="0" | ||
354 | height="1370.8721" | ||
355 | width="2809.1992" | ||
356 | y="949.37109" | ||
357 | x="2084.55" /> | ||
358 | <rect | ||
359 | id="rect112-3-5" | ||
360 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
361 | rx="0" | ||
362 | height="1294.8468" | ||
363 | width="2809.1992" | ||
364 | y="1025.3964" | ||
365 | x="2084.55" /> | ||
366 | </g> | ||
367 | <text | ||
368 | xml:space="preserve" | ||
369 | x="5392.3345" | ||
370 | y="15407.104" | ||
371 | font-style="normal" | ||
372 | font-weight="bold" | ||
373 | font-size="192" | ||
374 | id="text202-6" | ||
375 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
376 | </g> | ||
377 | <g | ||
378 | style="fill:none;stroke-width:0.025in" | ||
379 | transform="translate(3181.0246,-11647.329)" | ||
380 | id="g3153"> | ||
381 | <g | ||
382 | style="fill:none;stroke-width:0.025in" | ||
383 | id="g3107-6-9" | ||
384 | transform="translate(5213.0126,16008.808)"> | ||
385 | <rect | ||
386 | id="rect112-7-1" | ||
387 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
388 | rx="0" | ||
389 | height="1370.8721" | ||
390 | width="2809.1992" | ||
391 | y="949.37109" | ||
392 | x="2084.55" /> | ||
393 | <rect | ||
394 | id="rect112-3-5-2" | ||
395 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
396 | rx="0" | ||
397 | height="1294.8468" | ||
398 | width="2809.1992" | ||
399 | y="1025.3964" | ||
400 | x="2084.55" /> | ||
401 | </g> | ||
402 | <text | ||
403 | xml:space="preserve" | ||
404 | x="9717.4141" | ||
405 | y="18269.314" | ||
406 | font-style="normal" | ||
407 | font-weight="bold" | ||
408 | font-size="192" | ||
409 | id="text202-7-5-1-2-3-7-35-7" | ||
410 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
411 | sodipodi:linespacing="125%"><tspan | ||
412 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
413 | id="tspan3104-6-5-6-0">Leaf</tspan></text> | ||
414 | <text | ||
415 | xml:space="preserve" | ||
416 | x="7536.4883" | ||
417 | y="17640.934" | ||
418 | font-style="normal" | ||
419 | font-weight="bold" | ||
420 | font-size="192" | ||
421 | id="text202-9" | ||
422 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
423 | </g> | ||
424 | <g | ||
425 | transform="translate(-1642.5375,-11610.962)" | ||
426 | id="g3147-3" | ||
427 | style="fill:none;stroke-width:0.025in"> | ||
428 | <g | ||
429 | style="fill:none;stroke-width:0.025in" | ||
430 | id="g3107-6-6" | ||
431 | transform="translate(3054.6101,13760.052)"> | ||
432 | <rect | ||
433 | id="rect112-7-0" | ||
434 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
435 | rx="0" | ||
436 | height="1370.8721" | ||
437 | width="2809.1992" | ||
438 | y="949.37109" | ||
439 | x="2084.55" /> | ||
440 | <rect | ||
441 | id="rect112-3-5-6" | ||
442 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
443 | rx="0" | ||
444 | height="1294.8468" | ||
445 | width="2809.1992" | ||
446 | y="1025.3964" | ||
447 | x="2084.55" /> | ||
448 | </g> | ||
449 | <text | ||
450 | xml:space="preserve" | ||
451 | x="5378.4146" | ||
452 | y="15436.927" | ||
453 | font-style="normal" | ||
454 | font-weight="bold" | ||
455 | font-size="192" | ||
456 | id="text202-3" | ||
457 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
458 | </g> | ||
459 | <g | ||
460 | transform="translate(-151.71726,-11647.329)" | ||
461 | id="g3153-2" | ||
462 | style="fill:none;stroke-width:0.025in"> | ||
463 | <g | ||
464 | style="fill:none;stroke-width:0.025in" | ||
465 | id="g3107-6-9-6" | ||
466 | transform="translate(5213.0126,16008.808)"> | ||
467 | <rect | ||
468 | id="rect112-7-1-1" | ||
469 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
470 | rx="0" | ||
471 | height="1370.8721" | ||
472 | width="2809.1992" | ||
473 | y="949.37109" | ||
474 | x="2084.55" /> | ||
475 | <rect | ||
476 | id="rect112-3-5-2-8" | ||
477 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
478 | rx="0" | ||
479 | height="1294.8468" | ||
480 | width="2809.1992" | ||
481 | y="1025.3964" | ||
482 | x="2084.55" /> | ||
483 | </g> | ||
484 | <text | ||
485 | xml:space="preserve" | ||
486 | x="9717.4141" | ||
487 | y="18269.314" | ||
488 | font-style="normal" | ||
489 | font-weight="bold" | ||
490 | font-size="192" | ||
491 | id="text202-7-5-1-2-3-7-35-7-7" | ||
492 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
493 | sodipodi:linespacing="125%"><tspan | ||
494 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
495 | id="tspan3104-6-5-6-0-9">Leaf</tspan></text> | ||
496 | </g> | ||
497 | <g | ||
498 | transform="translate(-3484.4587,-11647.329)" | ||
499 | id="g3153-20" | ||
500 | style="fill:none;stroke-width:0.025in"> | ||
501 | <g | ||
502 | style="fill:none;stroke-width:0.025in" | ||
503 | id="g3107-6-9-2" | ||
504 | transform="translate(5213.0126,16008.808)"> | ||
505 | <rect | ||
506 | id="rect112-7-1-3" | ||
507 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
508 | rx="0" | ||
509 | height="1370.8721" | ||
510 | width="2809.1992" | ||
511 | y="949.37109" | ||
512 | x="2084.55" /> | ||
513 | <rect | ||
514 | id="rect112-3-5-2-7" | ||
515 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
516 | rx="0" | ||
517 | height="1294.8468" | ||
518 | width="2809.1992" | ||
519 | y="1025.3964" | ||
520 | x="2084.55" /> | ||
521 | </g> | ||
522 | <text | ||
523 | xml:space="preserve" | ||
524 | x="9717.4141" | ||
525 | y="18269.314" | ||
526 | font-style="normal" | ||
527 | font-weight="bold" | ||
528 | font-size="192" | ||
529 | id="text202-7-5-1-2-3-7-35-7-5" | ||
530 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
531 | sodipodi:linespacing="125%"><tspan | ||
532 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
533 | id="tspan3104-6-5-6-0-92">Leaf</tspan></text> | ||
534 | <text | ||
535 | xml:space="preserve" | ||
536 | x="7520.1294" | ||
537 | y="17673.639" | ||
538 | font-style="normal" | ||
539 | font-weight="bold" | ||
540 | font-size="192" | ||
541 | id="text202-35" | ||
542 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
543 | </g> | ||
544 | <g | ||
545 | transform="translate(-6817.1998,-11647.329)" | ||
546 | id="g3153-28" | ||
547 | style="fill:none;stroke-width:0.025in"> | ||
548 | <g | ||
549 | style="fill:none;stroke-width:0.025in" | ||
550 | id="g3107-6-9-9" | ||
551 | transform="translate(5213.0126,16008.808)"> | ||
552 | <rect | ||
553 | id="rect112-7-1-7" | ||
554 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
555 | rx="0" | ||
556 | height="1370.8721" | ||
557 | width="2809.1992" | ||
558 | y="949.37109" | ||
559 | x="2084.55" /> | ||
560 | <rect | ||
561 | id="rect112-3-5-2-3" | ||
562 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
563 | rx="0" | ||
564 | height="1294.8468" | ||
565 | width="2809.1992" | ||
566 | y="1025.3964" | ||
567 | x="2084.55" /> | ||
568 | </g> | ||
569 | <text | ||
570 | xml:space="preserve" | ||
571 | x="9717.4141" | ||
572 | y="18269.314" | ||
573 | font-style="normal" | ||
574 | font-weight="bold" | ||
575 | font-size="192" | ||
576 | id="text202-7-5-1-2-3-7-35-7-6" | ||
577 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
578 | sodipodi:linespacing="125%"><tspan | ||
579 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
580 | id="tspan3104-6-5-6-0-1">Leaf</tspan></text> | ||
581 | <text | ||
582 | xml:space="preserve" | ||
583 | x="7521.4663" | ||
584 | y="17666.062" | ||
585 | font-style="normal" | ||
586 | font-weight="bold" | ||
587 | font-size="192" | ||
588 | id="text202-75" | ||
589 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
590 | </g> | ||
591 | <path | ||
592 | style="fill:none;stroke:#000000;stroke-width:13.29812908px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
593 | d="m 5473.7572,2235.0081 -582.9982,865.094" | ||
594 | id="path3414" | ||
595 | inkscape:connector-curvature="0" /> | ||
596 | <path | ||
597 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
598 | d="m 8282.5391,2235.2701 582.9982,865.094" | ||
599 | id="path3414-9" | ||
600 | inkscape:connector-curvature="0" /> | ||
601 | <path | ||
602 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
603 | d="m 3523.1241,4448.1851 -582.9982,865.094" | ||
604 | id="path3414-8" | ||
605 | inkscape:connector-curvature="0" /> | ||
606 | <path | ||
607 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
608 | d="m 10268.171,4448.4471 583,865.094" | ||
609 | id="path3414-9-4" | ||
610 | inkscape:connector-curvature="0" /> | ||
611 | <path | ||
612 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
613 | d="m 4939.6205,4448.1851 0,846.288" | ||
614 | id="path3414-8-3" | ||
615 | inkscape:connector-curvature="0" | ||
616 | sodipodi:nodetypes="cc" /> | ||
617 | <path | ||
618 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
619 | d="m 8816.5958,4474.7811 0,846.288" | ||
620 | id="path3414-8-3-6" | ||
621 | inkscape:connector-curvature="0" | ||
622 | sodipodi:nodetypes="cc" /> | ||
623 | <text | ||
624 | xml:space="preserve" | ||
625 | x="7370.856" | ||
626 | y="5997.5972" | ||
627 | font-style="normal" | ||
628 | font-weight="bold" | ||
629 | font-size="192" | ||
630 | id="text202-62" | ||
631 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
632 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp.svg new file mode 100644 index 000000000000..b13b7b01bb3a --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp.svg | |||
@@ -0,0 +1,5135 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="1626.5841" | ||
17 | height="6394.5298" | ||
18 | viewBox="-44 -44 21630.525 84996.019" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-gp.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | <marker | ||
178 | inkscape:stockid="Arrow1Send" | ||
179 | orient="auto" | ||
180 | refY="0" | ||
181 | refX="0" | ||
182 | id="Arrow1Send-36" | ||
183 | style="overflow:visible"> | ||
184 | <path | ||
185 | id="path3940-7" | ||
186 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
187 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
188 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
189 | inkscape:connector-curvature="0" /> | ||
190 | </marker> | ||
191 | <marker | ||
192 | inkscape:stockid="Arrow2Lend" | ||
193 | orient="auto" | ||
194 | refY="0" | ||
195 | refX="0" | ||
196 | id="Arrow2Lend-3" | ||
197 | style="overflow:visible"> | ||
198 | <path | ||
199 | id="path3946-6" | ||
200 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
201 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
202 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
203 | inkscape:connector-curvature="0" /> | ||
204 | </marker> | ||
205 | <marker | ||
206 | inkscape:stockid="Arrow2Lend" | ||
207 | orient="auto" | ||
208 | refY="0" | ||
209 | refX="0" | ||
210 | id="marker3085" | ||
211 | style="overflow:visible"> | ||
212 | <path | ||
213 | id="path3087" | ||
214 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
215 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
216 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
217 | inkscape:connector-curvature="0" /> | ||
218 | </marker> | ||
219 | <marker | ||
220 | inkscape:stockid="Arrow2Lend" | ||
221 | orient="auto" | ||
222 | refY="0" | ||
223 | refX="0" | ||
224 | id="marker3089" | ||
225 | style="overflow:visible"> | ||
226 | <path | ||
227 | id="path3091" | ||
228 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
229 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
230 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
231 | inkscape:connector-curvature="0" /> | ||
232 | </marker> | ||
233 | <marker | ||
234 | inkscape:stockid="Arrow2Lend" | ||
235 | orient="auto" | ||
236 | refY="0" | ||
237 | refX="0" | ||
238 | id="marker3093" | ||
239 | style="overflow:visible"> | ||
240 | <path | ||
241 | id="path3095" | ||
242 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
243 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
244 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
245 | inkscape:connector-curvature="0" /> | ||
246 | </marker> | ||
247 | <marker | ||
248 | inkscape:stockid="Arrow2Lend" | ||
249 | orient="auto" | ||
250 | refY="0" | ||
251 | refX="0" | ||
252 | id="marker3097" | ||
253 | style="overflow:visible"> | ||
254 | <path | ||
255 | id="path3099" | ||
256 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
257 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
258 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
259 | inkscape:connector-curvature="0" /> | ||
260 | </marker> | ||
261 | <marker | ||
262 | inkscape:stockid="Arrow2Lend" | ||
263 | orient="auto" | ||
264 | refY="0" | ||
265 | refX="0" | ||
266 | id="marker3101" | ||
267 | style="overflow:visible"> | ||
268 | <path | ||
269 | id="path3103" | ||
270 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
271 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
272 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
273 | inkscape:connector-curvature="0" /> | ||
274 | </marker> | ||
275 | <marker | ||
276 | inkscape:stockid="Arrow1Send" | ||
277 | orient="auto" | ||
278 | refY="0" | ||
279 | refX="0" | ||
280 | id="Arrow1Send-7" | ||
281 | style="overflow:visible"> | ||
282 | <path | ||
283 | id="path3940-5" | ||
284 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
285 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
286 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
287 | inkscape:connector-curvature="0" /> | ||
288 | </marker> | ||
289 | <marker | ||
290 | inkscape:stockid="Arrow1Send" | ||
291 | orient="auto" | ||
292 | refY="0" | ||
293 | refX="0" | ||
294 | id="Arrow1Send-79" | ||
295 | style="overflow:visible"> | ||
296 | <path | ||
297 | id="path3940-20" | ||
298 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
299 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
300 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
301 | inkscape:connector-curvature="0" /> | ||
302 | </marker> | ||
303 | <marker | ||
304 | inkscape:stockid="Arrow2Lend" | ||
305 | orient="auto" | ||
306 | refY="0" | ||
307 | refX="0" | ||
308 | id="Arrow2Lend-37" | ||
309 | style="overflow:visible"> | ||
310 | <path | ||
311 | id="path3946-5" | ||
312 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
313 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
314 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
315 | inkscape:connector-curvature="0" /> | ||
316 | </marker> | ||
317 | <marker | ||
318 | inkscape:stockid="Arrow2Lend" | ||
319 | orient="auto" | ||
320 | refY="0" | ||
321 | refX="0" | ||
322 | id="marker3081" | ||
323 | style="overflow:visible"> | ||
324 | <path | ||
325 | id="path3083" | ||
326 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
327 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
328 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
329 | inkscape:connector-curvature="0" /> | ||
330 | </marker> | ||
331 | <marker | ||
332 | inkscape:stockid="Arrow2Lend" | ||
333 | orient="auto" | ||
334 | refY="0" | ||
335 | refX="0" | ||
336 | id="marker3085-9" | ||
337 | style="overflow:visible"> | ||
338 | <path | ||
339 | id="path3087-2" | ||
340 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
341 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
342 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
343 | inkscape:connector-curvature="0" /> | ||
344 | </marker> | ||
345 | <marker | ||
346 | inkscape:stockid="Arrow2Lend" | ||
347 | orient="auto" | ||
348 | refY="0" | ||
349 | refX="0" | ||
350 | id="marker3089-2" | ||
351 | style="overflow:visible"> | ||
352 | <path | ||
353 | id="path3091-8" | ||
354 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
355 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
356 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
357 | inkscape:connector-curvature="0" /> | ||
358 | </marker> | ||
359 | <marker | ||
360 | inkscape:stockid="Arrow2Lend" | ||
361 | orient="auto" | ||
362 | refY="0" | ||
363 | refX="0" | ||
364 | id="marker3093-9" | ||
365 | style="overflow:visible"> | ||
366 | <path | ||
367 | id="path3095-7" | ||
368 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
369 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
370 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
371 | inkscape:connector-curvature="0" /> | ||
372 | </marker> | ||
373 | <marker | ||
374 | inkscape:stockid="Arrow2Lend" | ||
375 | orient="auto" | ||
376 | refY="0" | ||
377 | refX="0" | ||
378 | id="marker3097-3" | ||
379 | style="overflow:visible"> | ||
380 | <path | ||
381 | id="path3099-6" | ||
382 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
383 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
384 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
385 | inkscape:connector-curvature="0" /> | ||
386 | </marker> | ||
387 | <marker | ||
388 | inkscape:stockid="Arrow1Send" | ||
389 | orient="auto" | ||
390 | refY="0" | ||
391 | refX="0" | ||
392 | id="Arrow1Send-12" | ||
393 | style="overflow:visible"> | ||
394 | <path | ||
395 | id="path3940-93" | ||
396 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
397 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
398 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
399 | inkscape:connector-curvature="0" /> | ||
400 | </marker> | ||
401 | <marker | ||
402 | inkscape:stockid="Arrow2Lend" | ||
403 | orient="auto" | ||
404 | refY="0" | ||
405 | refX="0" | ||
406 | id="Arrow2Lend-2" | ||
407 | style="overflow:visible"> | ||
408 | <path | ||
409 | id="path3946-66" | ||
410 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
411 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
412 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
413 | inkscape:connector-curvature="0" /> | ||
414 | </marker> | ||
415 | <marker | ||
416 | inkscape:stockid="Arrow2Lend" | ||
417 | orient="auto" | ||
418 | refY="0" | ||
419 | refX="0" | ||
420 | id="marker3077" | ||
421 | style="overflow:visible"> | ||
422 | <path | ||
423 | id="path3079" | ||
424 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
425 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
426 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
427 | inkscape:connector-curvature="0" /> | ||
428 | </marker> | ||
429 | <marker | ||
430 | inkscape:stockid="Arrow2Lend" | ||
431 | orient="auto" | ||
432 | refY="0" | ||
433 | refX="0" | ||
434 | id="marker3081-4" | ||
435 | style="overflow:visible"> | ||
436 | <path | ||
437 | id="path3083-9" | ||
438 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
439 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
440 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
441 | inkscape:connector-curvature="0" /> | ||
442 | </marker> | ||
443 | <marker | ||
444 | inkscape:stockid="Arrow2Lend" | ||
445 | orient="auto" | ||
446 | refY="0" | ||
447 | refX="0" | ||
448 | id="marker3085-5" | ||
449 | style="overflow:visible"> | ||
450 | <path | ||
451 | id="path3087-0" | ||
452 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
453 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
454 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
455 | inkscape:connector-curvature="0" /> | ||
456 | </marker> | ||
457 | <marker | ||
458 | inkscape:stockid="Arrow2Lend" | ||
459 | orient="auto" | ||
460 | refY="0" | ||
461 | refX="0" | ||
462 | id="marker3089-4" | ||
463 | style="overflow:visible"> | ||
464 | <path | ||
465 | id="path3091-87" | ||
466 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
467 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
468 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
469 | inkscape:connector-curvature="0" /> | ||
470 | </marker> | ||
471 | <marker | ||
472 | inkscape:stockid="Arrow2Lend" | ||
473 | orient="auto" | ||
474 | refY="0" | ||
475 | refX="0" | ||
476 | id="marker3093-1" | ||
477 | style="overflow:visible"> | ||
478 | <path | ||
479 | id="path3095-72" | ||
480 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
481 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
482 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
483 | inkscape:connector-curvature="0" /> | ||
484 | </marker> | ||
485 | <marker | ||
486 | inkscape:stockid="Arrow1Send" | ||
487 | orient="auto" | ||
488 | refY="0" | ||
489 | refX="0" | ||
490 | id="Arrow1Send-72" | ||
491 | style="overflow:visible"> | ||
492 | <path | ||
493 | id="path3940-26" | ||
494 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
495 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
496 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
497 | inkscape:connector-curvature="0" /> | ||
498 | </marker> | ||
499 | <marker | ||
500 | inkscape:stockid="Arrow1Send" | ||
501 | orient="auto" | ||
502 | refY="0" | ||
503 | refX="0" | ||
504 | id="Arrow1Send-6" | ||
505 | style="overflow:visible"> | ||
506 | <path | ||
507 | id="path3940-25" | ||
508 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
509 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
510 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
511 | inkscape:connector-curvature="0" /> | ||
512 | </marker> | ||
513 | <marker | ||
514 | inkscape:stockid="Arrow2Lend" | ||
515 | orient="auto" | ||
516 | refY="0" | ||
517 | refX="0" | ||
518 | id="Arrow2Lend-8" | ||
519 | style="overflow:visible"> | ||
520 | <path | ||
521 | id="path3946-62" | ||
522 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
523 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
524 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
525 | inkscape:connector-curvature="0" /> | ||
526 | </marker> | ||
527 | <marker | ||
528 | inkscape:stockid="Arrow2Lend" | ||
529 | orient="auto" | ||
530 | refY="0" | ||
531 | refX="0" | ||
532 | id="marker3179" | ||
533 | style="overflow:visible"> | ||
534 | <path | ||
535 | id="path3181" | ||
536 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
537 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
538 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
539 | inkscape:connector-curvature="0" /> | ||
540 | </marker> | ||
541 | <marker | ||
542 | inkscape:stockid="Arrow2Lend" | ||
543 | orient="auto" | ||
544 | refY="0" | ||
545 | refX="0" | ||
546 | id="marker3183" | ||
547 | style="overflow:visible"> | ||
548 | <path | ||
549 | id="path3185" | ||
550 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
551 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
552 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
553 | inkscape:connector-curvature="0" /> | ||
554 | </marker> | ||
555 | <marker | ||
556 | inkscape:stockid="Arrow2Lend" | ||
557 | orient="auto" | ||
558 | refY="0" | ||
559 | refX="0" | ||
560 | id="marker3187" | ||
561 | style="overflow:visible"> | ||
562 | <path | ||
563 | id="path3189" | ||
564 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
565 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
566 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
567 | inkscape:connector-curvature="0" /> | ||
568 | </marker> | ||
569 | <marker | ||
570 | inkscape:stockid="Arrow2Lend" | ||
571 | orient="auto" | ||
572 | refY="0" | ||
573 | refX="0" | ||
574 | id="marker3191" | ||
575 | style="overflow:visible"> | ||
576 | <path | ||
577 | id="path3193" | ||
578 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
579 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
580 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
581 | inkscape:connector-curvature="0" /> | ||
582 | </marker> | ||
583 | <marker | ||
584 | inkscape:stockid="Arrow2Lend" | ||
585 | orient="auto" | ||
586 | refY="0" | ||
587 | refX="0" | ||
588 | id="marker3195" | ||
589 | style="overflow:visible"> | ||
590 | <path | ||
591 | id="path3197" | ||
592 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
593 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
594 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
595 | inkscape:connector-curvature="0" /> | ||
596 | </marker> | ||
597 | <marker | ||
598 | inkscape:stockid="Arrow1Send" | ||
599 | orient="auto" | ||
600 | refY="0" | ||
601 | refX="0" | ||
602 | id="marker3199" | ||
603 | style="overflow:visible"> | ||
604 | <path | ||
605 | id="path3201" | ||
606 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
607 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
608 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
609 | inkscape:connector-curvature="0" /> | ||
610 | </marker> | ||
611 | <marker | ||
612 | inkscape:stockid="Arrow1Send" | ||
613 | orient="auto" | ||
614 | refY="0" | ||
615 | refX="0" | ||
616 | id="marker3203" | ||
617 | style="overflow:visible"> | ||
618 | <path | ||
619 | id="path3205" | ||
620 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
621 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
622 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
623 | inkscape:connector-curvature="0" /> | ||
624 | </marker> | ||
625 | <marker | ||
626 | inkscape:stockid="Arrow1Send" | ||
627 | orient="auto" | ||
628 | refY="0" | ||
629 | refX="0" | ||
630 | id="marker3207" | ||
631 | style="overflow:visible"> | ||
632 | <path | ||
633 | id="path3209" | ||
634 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
635 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
636 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
637 | inkscape:connector-curvature="0" /> | ||
638 | </marker> | ||
639 | <marker | ||
640 | inkscape:stockid="Arrow1Send" | ||
641 | orient="auto" | ||
642 | refY="0" | ||
643 | refX="0" | ||
644 | id="marker3211" | ||
645 | style="overflow:visible"> | ||
646 | <path | ||
647 | id="path3213" | ||
648 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
649 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
650 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
651 | inkscape:connector-curvature="0" /> | ||
652 | </marker> | ||
653 | <marker | ||
654 | inkscape:stockid="Arrow1Send" | ||
655 | orient="auto" | ||
656 | refY="0" | ||
657 | refX="0" | ||
658 | id="marker3215" | ||
659 | style="overflow:visible"> | ||
660 | <path | ||
661 | id="path3217" | ||
662 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
663 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
664 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
665 | inkscape:connector-curvature="0" /> | ||
666 | </marker> | ||
667 | <marker | ||
668 | inkscape:stockid="Arrow1Send" | ||
669 | orient="auto" | ||
670 | refY="0" | ||
671 | refX="0" | ||
672 | id="Arrow1Send-5" | ||
673 | style="overflow:visible"> | ||
674 | <path | ||
675 | id="path3940-52" | ||
676 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
677 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
678 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
679 | inkscape:connector-curvature="0" /> | ||
680 | </marker> | ||
681 | <marker | ||
682 | inkscape:stockid="Arrow1Send" | ||
683 | orient="auto" | ||
684 | refY="0" | ||
685 | refX="0" | ||
686 | id="marker3150" | ||
687 | style="overflow:visible"> | ||
688 | <path | ||
689 | id="path3152" | ||
690 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
691 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
692 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
693 | inkscape:connector-curvature="0" /> | ||
694 | </marker> | ||
695 | <marker | ||
696 | inkscape:stockid="Arrow2Lend" | ||
697 | orient="auto" | ||
698 | refY="0" | ||
699 | refX="0" | ||
700 | id="Arrow2Lend-9" | ||
701 | style="overflow:visible"> | ||
702 | <path | ||
703 | id="path3946-0" | ||
704 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
705 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
706 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
707 | inkscape:connector-curvature="0" /> | ||
708 | </marker> | ||
709 | <marker | ||
710 | inkscape:stockid="Arrow2Lend" | ||
711 | orient="auto" | ||
712 | refY="0" | ||
713 | refX="0" | ||
714 | id="marker3156" | ||
715 | style="overflow:visible"> | ||
716 | <path | ||
717 | id="path3158" | ||
718 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
719 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
720 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
721 | inkscape:connector-curvature="0" /> | ||
722 | </marker> | ||
723 | <marker | ||
724 | inkscape:stockid="Arrow2Lend" | ||
725 | orient="auto" | ||
726 | refY="0" | ||
727 | refX="0" | ||
728 | id="marker3160" | ||
729 | style="overflow:visible"> | ||
730 | <path | ||
731 | id="path3162" | ||
732 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
733 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
734 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
735 | inkscape:connector-curvature="0" /> | ||
736 | </marker> | ||
737 | <marker | ||
738 | inkscape:stockid="Arrow2Lend" | ||
739 | orient="auto" | ||
740 | refY="0" | ||
741 | refX="0" | ||
742 | id="marker3164" | ||
743 | style="overflow:visible"> | ||
744 | <path | ||
745 | id="path3166" | ||
746 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
747 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
748 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
749 | inkscape:connector-curvature="0" /> | ||
750 | </marker> | ||
751 | <marker | ||
752 | inkscape:stockid="Arrow2Lend" | ||
753 | orient="auto" | ||
754 | refY="0" | ||
755 | refX="0" | ||
756 | id="marker3168" | ||
757 | style="overflow:visible"> | ||
758 | <path | ||
759 | id="path3170" | ||
760 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
761 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
762 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
763 | inkscape:connector-curvature="0" /> | ||
764 | </marker> | ||
765 | <marker | ||
766 | inkscape:stockid="Arrow2Lend" | ||
767 | orient="auto" | ||
768 | refY="0" | ||
769 | refX="0" | ||
770 | id="marker3172" | ||
771 | style="overflow:visible"> | ||
772 | <path | ||
773 | id="path3174" | ||
774 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
775 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
776 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
777 | inkscape:connector-curvature="0" /> | ||
778 | </marker> | ||
779 | <marker | ||
780 | inkscape:stockid="Arrow1Send" | ||
781 | orient="auto" | ||
782 | refY="0" | ||
783 | refX="0" | ||
784 | id="Arrow1Send-8" | ||
785 | style="overflow:visible"> | ||
786 | <path | ||
787 | id="path3940-7-2" | ||
788 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
789 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
790 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
791 | inkscape:connector-curvature="0" /> | ||
792 | </marker> | ||
793 | <marker | ||
794 | inkscape:stockid="Arrow1Send" | ||
795 | orient="auto" | ||
796 | refY="0" | ||
797 | refX="0" | ||
798 | id="Arrow1Send-17" | ||
799 | style="overflow:visible"> | ||
800 | <path | ||
801 | id="path3940-8" | ||
802 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
803 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
804 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
805 | inkscape:connector-curvature="0" /> | ||
806 | </marker> | ||
807 | <marker | ||
808 | inkscape:stockid="Arrow1Send" | ||
809 | orient="auto" | ||
810 | refY="0" | ||
811 | refX="0" | ||
812 | id="Arrow1Send-36-4" | ||
813 | style="overflow:visible"> | ||
814 | <path | ||
815 | id="path3940-7-9" | ||
816 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
817 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
818 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
819 | inkscape:connector-curvature="0" /> | ||
820 | </marker> | ||
821 | <marker | ||
822 | inkscape:stockid="Arrow2Lend" | ||
823 | orient="auto" | ||
824 | refY="0" | ||
825 | refX="0" | ||
826 | id="Arrow2Lend-94" | ||
827 | style="overflow:visible"> | ||
828 | <path | ||
829 | id="path3946-59" | ||
830 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
831 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
832 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
833 | inkscape:connector-curvature="0" /> | ||
834 | </marker> | ||
835 | <marker | ||
836 | inkscape:stockid="Arrow2Lend" | ||
837 | orient="auto" | ||
838 | refY="0" | ||
839 | refX="0" | ||
840 | id="marker3157" | ||
841 | style="overflow:visible"> | ||
842 | <path | ||
843 | id="path3159" | ||
844 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
845 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
846 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
847 | inkscape:connector-curvature="0" /> | ||
848 | </marker> | ||
849 | <marker | ||
850 | inkscape:stockid="Arrow2Lend" | ||
851 | orient="auto" | ||
852 | refY="0" | ||
853 | refX="0" | ||
854 | id="marker3161" | ||
855 | style="overflow:visible"> | ||
856 | <path | ||
857 | id="path3163" | ||
858 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
859 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
860 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
861 | inkscape:connector-curvature="0" /> | ||
862 | </marker> | ||
863 | <marker | ||
864 | inkscape:stockid="Arrow2Lend" | ||
865 | orient="auto" | ||
866 | refY="0" | ||
867 | refX="0" | ||
868 | id="marker3165" | ||
869 | style="overflow:visible"> | ||
870 | <path | ||
871 | id="path3167" | ||
872 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
873 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
874 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
875 | inkscape:connector-curvature="0" /> | ||
876 | </marker> | ||
877 | <marker | ||
878 | inkscape:stockid="Arrow2Lend" | ||
879 | orient="auto" | ||
880 | refY="0" | ||
881 | refX="0" | ||
882 | id="marker3169" | ||
883 | style="overflow:visible"> | ||
884 | <path | ||
885 | id="path3171" | ||
886 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
887 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
888 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
889 | inkscape:connector-curvature="0" /> | ||
890 | </marker> | ||
891 | <marker | ||
892 | inkscape:stockid="Arrow2Lend" | ||
893 | orient="auto" | ||
894 | refY="0" | ||
895 | refX="0" | ||
896 | id="marker3173" | ||
897 | style="overflow:visible"> | ||
898 | <path | ||
899 | id="path3175" | ||
900 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
901 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
902 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
903 | inkscape:connector-curvature="0" /> | ||
904 | </marker> | ||
905 | <marker | ||
906 | inkscape:stockid="Arrow2Lend" | ||
907 | orient="auto" | ||
908 | refY="0" | ||
909 | refX="0" | ||
910 | id="marker3177" | ||
911 | style="overflow:visible"> | ||
912 | <path | ||
913 | id="path3179" | ||
914 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
915 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
916 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
917 | inkscape:connector-curvature="0" /> | ||
918 | </marker> | ||
919 | <marker | ||
920 | inkscape:stockid="Arrow2Lend" | ||
921 | orient="auto" | ||
922 | refY="0" | ||
923 | refX="0" | ||
924 | id="marker3181" | ||
925 | style="overflow:visible"> | ||
926 | <path | ||
927 | id="path3183" | ||
928 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
929 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
930 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
931 | inkscape:connector-curvature="0" /> | ||
932 | </marker> | ||
933 | <marker | ||
934 | inkscape:stockid="Arrow2Lend" | ||
935 | orient="auto" | ||
936 | refY="0" | ||
937 | refX="0" | ||
938 | id="marker3185" | ||
939 | style="overflow:visible"> | ||
940 | <path | ||
941 | id="path3187" | ||
942 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
943 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
944 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
945 | inkscape:connector-curvature="0" /> | ||
946 | </marker> | ||
947 | <marker | ||
948 | inkscape:stockid="Arrow2Lend" | ||
949 | orient="auto" | ||
950 | refY="0" | ||
951 | refX="0" | ||
952 | id="marker3189" | ||
953 | style="overflow:visible"> | ||
954 | <path | ||
955 | id="path3191" | ||
956 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
957 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
958 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
959 | inkscape:connector-curvature="0" /> | ||
960 | </marker> | ||
961 | <marker | ||
962 | inkscape:stockid="Arrow2Lend" | ||
963 | orient="auto" | ||
964 | refY="0" | ||
965 | refX="0" | ||
966 | id="marker3193" | ||
967 | style="overflow:visible"> | ||
968 | <path | ||
969 | id="path3195" | ||
970 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
971 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
972 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
973 | inkscape:connector-curvature="0" /> | ||
974 | </marker> | ||
975 | <marker | ||
976 | inkscape:stockid="Arrow2Lend" | ||
977 | orient="auto" | ||
978 | refY="0" | ||
979 | refX="0" | ||
980 | id="marker3197" | ||
981 | style="overflow:visible"> | ||
982 | <path | ||
983 | id="path3199" | ||
984 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
985 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
986 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
987 | inkscape:connector-curvature="0" /> | ||
988 | </marker> | ||
989 | <marker | ||
990 | inkscape:stockid="Arrow1Send" | ||
991 | orient="auto" | ||
992 | refY="0" | ||
993 | refX="0" | ||
994 | id="Arrow1Send-35" | ||
995 | style="overflow:visible"> | ||
996 | <path | ||
997 | id="path3940-70" | ||
998 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
999 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
1000 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
1001 | inkscape:connector-curvature="0" /> | ||
1002 | </marker> | ||
1003 | <marker | ||
1004 | inkscape:stockid="Arrow1Send" | ||
1005 | orient="auto" | ||
1006 | refY="0" | ||
1007 | refX="0" | ||
1008 | id="marker3203-8" | ||
1009 | style="overflow:visible"> | ||
1010 | <path | ||
1011 | id="path3205-1" | ||
1012 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
1013 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
1014 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
1015 | inkscape:connector-curvature="0" /> | ||
1016 | </marker> | ||
1017 | <marker | ||
1018 | inkscape:stockid="Arrow1Send" | ||
1019 | orient="auto" | ||
1020 | refY="0" | ||
1021 | refX="0" | ||
1022 | id="Arrow1Send-83" | ||
1023 | style="overflow:visible"> | ||
1024 | <path | ||
1025 | id="path3940-79" | ||
1026 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
1027 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
1028 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
1029 | inkscape:connector-curvature="0" /> | ||
1030 | </marker> | ||
1031 | <marker | ||
1032 | inkscape:stockid="Arrow1Send" | ||
1033 | orient="auto" | ||
1034 | refY="0" | ||
1035 | refX="0" | ||
1036 | id="marker3038" | ||
1037 | style="overflow:visible"> | ||
1038 | <path | ||
1039 | id="path3040" | ||
1040 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
1041 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
1042 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
1043 | inkscape:connector-curvature="0" /> | ||
1044 | </marker> | ||
1045 | <marker | ||
1046 | inkscape:stockid="Arrow1Send" | ||
1047 | orient="auto" | ||
1048 | refY="0" | ||
1049 | refX="0" | ||
1050 | id="marker3042" | ||
1051 | style="overflow:visible"> | ||
1052 | <path | ||
1053 | id="path3044" | ||
1054 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
1055 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
1056 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
1057 | inkscape:connector-curvature="0" /> | ||
1058 | </marker> | ||
1059 | </defs> | ||
1060 | <sodipodi:namedview | ||
1061 | pagecolor="#ffffff" | ||
1062 | bordercolor="#666666" | ||
1063 | borderopacity="1" | ||
1064 | objecttolerance="10" | ||
1065 | gridtolerance="10" | ||
1066 | guidetolerance="10" | ||
1067 | inkscape:pageopacity="0" | ||
1068 | inkscape:pageshadow="2" | ||
1069 | inkscape:window-width="1087" | ||
1070 | inkscape:window-height="1144" | ||
1071 | id="namedview208" | ||
1072 | showgrid="true" | ||
1073 | inkscape:zoom="0.6004608" | ||
1074 | inkscape:cx="826.65969" | ||
1075 | inkscape:cy="483.3047" | ||
1076 | inkscape:window-x="66" | ||
1077 | inkscape:window-y="28" | ||
1078 | inkscape:window-maximized="0" | ||
1079 | inkscape:current-layer="svg2" | ||
1080 | fit-margin-top="5" | ||
1081 | fit-margin-right="5" | ||
1082 | fit-margin-left="5" | ||
1083 | fit-margin-bottom="5"> | ||
1084 | <inkscape:grid | ||
1085 | type="xygrid" | ||
1086 | id="grid3079" | ||
1087 | empspacing="5" | ||
1088 | visible="true" | ||
1089 | enabled="true" | ||
1090 | snapvisiblegridlinesonly="true" | ||
1091 | originx="413.99932px" | ||
1092 | originy="5758.0031px" /> | ||
1093 | </sodipodi:namedview> | ||
1094 | <g | ||
1095 | style="fill:none;stroke-width:0.025in" | ||
1096 | id="g4" | ||
1097 | transform="translate(4751.9713,-1307.071)"> | ||
1098 | <path | ||
1099 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
1100 | d="m 6161.6776,2411.7612 0,6117.1391" | ||
1101 | id="path3134-9-0-3" | ||
1102 | inkscape:connector-curvature="0" | ||
1103 | sodipodi:nodetypes="cc" /> | ||
1104 | <path | ||
1105 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
1106 | d="m 6161.6776,3342.6302 -3856.4573,0 10.6979,5757.1962 2918.1436,-2e-4" | ||
1107 | id="path3134-9-0" | ||
1108 | inkscape:connector-curvature="0" | ||
1109 | sodipodi:nodetypes="cccc" /> | ||
1110 | <path | ||
1111 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
1112 | d="m 6161.6776,3342.6302 3856.4574,0 -12.188,5757.1963 -2918.1436,-3e-4" | ||
1113 | id="path3134-9-0-7" | ||
1114 | inkscape:connector-curvature="0" | ||
1115 | sodipodi:nodetypes="cccc" /> | ||
1116 | <!-- Line: box --> | ||
1117 | <!-- Line: box --> | ||
1118 | <!-- Line: box --> | ||
1119 | <!-- Line --> | ||
1120 | <!-- Arrowhead on XXXpoint 5250 8100 - 5710 5790--> | ||
1121 | <!-- Line --> | ||
1122 | <!-- Arrowhead on XXXpoint 4050 9300 - 4512 7140--> | ||
1123 | <!-- Line --> | ||
1124 | <!-- Arrowhead on XXXpoint 1040 9300 - 1502 7140--> | ||
1125 | <!-- Line --> | ||
1126 | <!-- Arrowhead on XXXpoint 2240 8100 - 2702 5940--> | ||
1127 | <!-- Line: box --> | ||
1128 | <!-- Line: box --> | ||
1129 | <!-- Line --> | ||
1130 | <!-- Arrowhead on XXXpoint 1350 3450 - 2444 2510--> | ||
1131 | <!-- Line --> | ||
1132 | <!-- Arrowhead on XXXpoint 4950 3450 - 3854 2510--> | ||
1133 | <!-- Line --> | ||
1134 | <!-- Arrowhead on XXXpoint 4050 6600 - 4050 4290--> | ||
1135 | <!-- Line --> | ||
1136 | <!-- Arrowhead on XXXpoint 1050 6600 - 1050 4290--> | ||
1137 | <!-- Line --> | ||
1138 | <!-- Arrowhead on XXXpoint 2250 5400 - 2250 4290--> | ||
1139 | <!-- Line --> | ||
1140 | <!-- Arrowhead on XXXpoint 2250 8100 - 2250 6240--> | ||
1141 | <!-- Line --> | ||
1142 | <!-- Arrowhead on XXXpoint 1050 9300 - 1050 7440--> | ||
1143 | <!-- Line --> | ||
1144 | <!-- Arrowhead on XXXpoint 4050 9300 - 4050 7440--> | ||
1145 | <!-- Line --> | ||
1146 | <!-- Arrowhead on XXXpoint 5250 8100 - 5250 6240--> | ||
1147 | <!-- Circle --> | ||
1148 | <!-- Circle --> | ||
1149 | <!-- Circle --> | ||
1150 | <!-- Circle --> | ||
1151 | <!-- Circle --> | ||
1152 | <!-- Circle --> | ||
1153 | <!-- Circle --> | ||
1154 | <!-- Circle --> | ||
1155 | <!-- Circle --> | ||
1156 | <!-- Line: box --> | ||
1157 | <!-- Line: box --> | ||
1158 | <!-- Line: box --> | ||
1159 | <!-- Line: box --> | ||
1160 | <!-- Line: box --> | ||
1161 | <!-- Line: box --> | ||
1162 | <!-- Line: box --> | ||
1163 | <!-- Line: box --> | ||
1164 | <!-- Line: box --> | ||
1165 | <!-- Line: box --> | ||
1166 | <!-- Line --> | ||
1167 | <!-- Line --> | ||
1168 | <!-- Arrowhead on XXXpoint 9300 3150 - 10860 3150--> | ||
1169 | <!-- Line: box --> | ||
1170 | <!-- Line --> | ||
1171 | <!-- Arrowhead on XXXpoint 11400 3600 - 11400 4410--> | ||
1172 | <!-- Line: box --> | ||
1173 | <!-- Line --> | ||
1174 | <!-- Arrowhead on XXXpoint 11400 5100 - 11400 5910--> | ||
1175 | <!-- Line: box --> | ||
1176 | <!-- Line --> | ||
1177 | <!-- Arrowhead on XXXpoint 9900 4650 - 10860 4650--> | ||
1178 | <!-- Line --> | ||
1179 | <!-- Arrowhead on XXXpoint 9600 6150 - 10860 6150--> | ||
1180 | <!-- Text --> | ||
1181 | <!-- Text --> | ||
1182 | <!-- Text --> | ||
1183 | <!-- Text --> | ||
1184 | <!-- Text --> | ||
1185 | <!-- Text --> | ||
1186 | <!-- Text --> | ||
1187 | <!-- Text --> | ||
1188 | <!-- Text --> | ||
1189 | <!-- Text --> | ||
1190 | <!-- Text --> | ||
1191 | <!-- Text --> | ||
1192 | <!-- Text --> | ||
1193 | <!-- Text --> | ||
1194 | <!-- Text --> | ||
1195 | <!-- Text --> | ||
1196 | <!-- Text --> | ||
1197 | <!-- Text --> | ||
1198 | <!-- Text --> | ||
1199 | <!-- Text --> | ||
1200 | <!-- Text --> | ||
1201 | <!-- Text --> | ||
1202 | <!-- Text --> | ||
1203 | <!-- Text --> | ||
1204 | <!-- Text --> | ||
1205 | <!-- Text --> | ||
1206 | <!-- Line --> | ||
1207 | <!-- Arrowhead on XXXpoint 5250 5400 - 5250 4290--> | ||
1208 | <!-- Line: box --> | ||
1209 | <!-- Line: box --> | ||
1210 | <!-- Line: box --> | ||
1211 | <!-- Line: box --> | ||
1212 | <!-- Text --> | ||
1213 | <!-- Text --> | ||
1214 | <!-- Text --> | ||
1215 | <!-- Text --> | ||
1216 | <!-- Text --> | ||
1217 | <rect | ||
1218 | x="4544.7305" | ||
1219 | y="4603.417" | ||
1220 | width="3240.0088" | ||
1221 | height="2650.6289" | ||
1222 | rx="0" | ||
1223 | style="stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115769;stroke-dashoffset:0" | ||
1224 | id="rect118" | ||
1225 | ry="0" /> | ||
1226 | <text | ||
1227 | xml:space="preserve" | ||
1228 | x="5073.3374" | ||
1229 | y="6372.4521" | ||
1230 | font-style="normal" | ||
1231 | font-weight="bold" | ||
1232 | font-size="192" | ||
1233 | id="text202" | ||
1234 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">rcu_accelerate_cbs()</text> | ||
1235 | <g | ||
1236 | id="g3107" | ||
1237 | transform="translate(2715.7065,4700.8888)"> | ||
1238 | <rect | ||
1239 | id="rect112" | ||
1240 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1241 | rx="0" | ||
1242 | height="1370.8721" | ||
1243 | width="2809.1992" | ||
1244 | y="949.37109" | ||
1245 | x="2084.55" /> | ||
1246 | <rect | ||
1247 | id="rect112-3" | ||
1248 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1249 | rx="0" | ||
1250 | height="1294.8468" | ||
1251 | width="2809.1992" | ||
1252 | y="1025.3964" | ||
1253 | x="2084.55" /> | ||
1254 | </g> | ||
1255 | <text | ||
1256 | xml:space="preserve" | ||
1257 | x="4773.3452" | ||
1258 | y="4825.2578" | ||
1259 | font-style="normal" | ||
1260 | font-weight="bold" | ||
1261 | font-size="192" | ||
1262 | id="text202-7" | ||
1263 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_prepare_for_idle()</text> | ||
1264 | <rect | ||
1265 | x="790.93585" | ||
1266 | y="4630.8252" | ||
1267 | width="3240.0088" | ||
1268 | height="2650.6289" | ||
1269 | rx="0" | ||
1270 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.0005789, 60.00115781;stroke-dashoffset:0" | ||
1271 | id="rect118-3" | ||
1272 | ry="0" /> | ||
1273 | <text | ||
1274 | xml:space="preserve" | ||
1275 | x="1319.5447" | ||
1276 | y="6639.2261" | ||
1277 | font-style="normal" | ||
1278 | font-weight="bold" | ||
1279 | font-size="192" | ||
1280 | id="text202-6" | ||
1281 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_accelerate_cbs()</text> | ||
1282 | <g | ||
1283 | style="fill:none;stroke-width:0.025in" | ||
1284 | id="g3107-7" | ||
1285 | transform="translate(-1038.0776,4728.2971)"> | ||
1286 | <rect | ||
1287 | id="rect112-5" | ||
1288 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1289 | rx="0" | ||
1290 | height="1370.8721" | ||
1291 | width="2809.1992" | ||
1292 | y="949.37109" | ||
1293 | x="2084.55" /> | ||
1294 | <rect | ||
1295 | id="rect112-3-3" | ||
1296 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1297 | rx="0" | ||
1298 | height="1294.8468" | ||
1299 | width="2809.1992" | ||
1300 | y="1025.3964" | ||
1301 | x="2084.55" /> | ||
1302 | </g> | ||
1303 | <text | ||
1304 | xml:space="preserve" | ||
1305 | x="1019.5512" | ||
1306 | y="4852.666" | ||
1307 | font-style="normal" | ||
1308 | font-weight="bold" | ||
1309 | font-size="192" | ||
1310 | id="text202-7-5" | ||
1311 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">note_gp_changes()</text> | ||
1312 | <text | ||
1313 | xml:space="preserve" | ||
1314 | x="1319.5447" | ||
1315 | y="6376.6328" | ||
1316 | font-style="normal" | ||
1317 | font-weight="bold" | ||
1318 | font-size="192" | ||
1319 | id="text202-6-6" | ||
1320 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_advance_cbs()</text> | ||
1321 | <text | ||
1322 | xml:space="preserve" | ||
1323 | x="1340.6649" | ||
1324 | y="6111.4473" | ||
1325 | font-style="normal" | ||
1326 | font-weight="bold" | ||
1327 | font-size="192" | ||
1328 | id="text202-6-6-2" | ||
1329 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">__note_gp_changes()</text> | ||
1330 | <rect | ||
1331 | x="5422.6279" | ||
1332 | y="3041.8311" | ||
1333 | width="1480.4871" | ||
1334 | height="379.24637" | ||
1335 | rx="0" | ||
1336 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.0005789, 60.00115794;stroke-dashoffset:0" | ||
1337 | id="rect118-3-9" | ||
1338 | ry="0" /> | ||
1339 | <text | ||
1340 | xml:space="preserve" | ||
1341 | x="5607.2734" | ||
1342 | y="3283.3892" | ||
1343 | font-style="normal" | ||
1344 | font-weight="bold" | ||
1345 | font-size="192" | ||
1346 | id="text202-7-5-1" | ||
1347 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">call_rcu()</text> | ||
1348 | <path | ||
1349 | sodipodi:type="arc" | ||
1350 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
1351 | id="path3084" | ||
1352 | sodipodi:cx="319.379" | ||
1353 | sodipodi:cy="345.54001" | ||
1354 | sodipodi:rx="65.917107" | ||
1355 | sodipodi:ry="39.550262" | ||
1356 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
1357 | transform="matrix(13.298129,0,0,13.298129,1915.7286,4523.6528)" /> | ||
1358 | <text | ||
1359 | xml:space="preserve" | ||
1360 | x="5853.9238" | ||
1361 | y="8902.3623" | ||
1362 | font-style="normal" | ||
1363 | font-weight="bold" | ||
1364 | font-size="192" | ||
1365 | id="text202-7-5-1-2" | ||
1366 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1367 | sodipodi:linespacing="125%"><tspan | ||
1368 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1369 | id="tspan3104">Wake up</tspan></text> | ||
1370 | <text | ||
1371 | xml:space="preserve" | ||
1372 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1373 | x="6165.7158" | ||
1374 | y="9122.8174" | ||
1375 | id="text3110" | ||
1376 | sodipodi:linespacing="125%"><tspan | ||
1377 | sodipodi:role="line" | ||
1378 | id="tspan3112" | ||
1379 | x="6165.7158" | ||
1380 | y="9122.8174">grace-period</tspan></text> | ||
1381 | <text | ||
1382 | xml:space="preserve" | ||
1383 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1384 | x="6162.8716" | ||
1385 | y="9364.3564" | ||
1386 | id="text3114" | ||
1387 | sodipodi:linespacing="125%"><tspan | ||
1388 | sodipodi:role="line" | ||
1389 | id="tspan3116" | ||
1390 | x="6162.8716" | ||
1391 | y="9364.3564">kernel thread</tspan></text> | ||
1392 | <rect | ||
1393 | x="8239.8516" | ||
1394 | y="4608.7363" | ||
1395 | width="3240.0088" | ||
1396 | height="2650.6289" | ||
1397 | rx="0" | ||
1398 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057902, 60.00115804;stroke-dashoffset:0" | ||
1399 | id="rect118-36" | ||
1400 | ry="0" /> | ||
1401 | <text | ||
1402 | xml:space="preserve" | ||
1403 | x="8768.4678" | ||
1404 | y="6484.1562" | ||
1405 | font-style="normal" | ||
1406 | font-weight="bold" | ||
1407 | font-size="192" | ||
1408 | id="text202-75" | ||
1409 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_accelerate_cbs()</text> | ||
1410 | <g | ||
1411 | style="fill:none;stroke-width:0.025in" | ||
1412 | id="g3107-3" | ||
1413 | transform="translate(6410.833,4706.2127)"> | ||
1414 | <rect | ||
1415 | id="rect112-56" | ||
1416 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1417 | rx="0" | ||
1418 | height="1370.8721" | ||
1419 | width="2809.1992" | ||
1420 | y="949.37109" | ||
1421 | x="2084.55" /> | ||
1422 | <rect | ||
1423 | id="rect112-3-2" | ||
1424 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1425 | rx="0" | ||
1426 | height="1294.8468" | ||
1427 | width="2809.1992" | ||
1428 | y="1025.3964" | ||
1429 | x="2084.55" /> | ||
1430 | </g> | ||
1431 | <text | ||
1432 | xml:space="preserve" | ||
1433 | x="8329.5352" | ||
1434 | y="4830.5771" | ||
1435 | font-style="normal" | ||
1436 | font-weight="bold" | ||
1437 | font-size="192" | ||
1438 | id="text202-7-9" | ||
1439 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">takedown_cpu()</text> | ||
1440 | <text | ||
1441 | xml:space="preserve" | ||
1442 | x="8335.4873" | ||
1443 | y="5094.127" | ||
1444 | font-style="normal" | ||
1445 | font-weight="bold" | ||
1446 | font-size="192" | ||
1447 | id="text202-7-9-6" | ||
1448 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcutree_migrate_callbacks()</text> | ||
1449 | <text | ||
1450 | xml:space="preserve" | ||
1451 | x="8335.4873" | ||
1452 | y="5357.1006" | ||
1453 | font-style="normal" | ||
1454 | font-weight="bold" | ||
1455 | font-size="192" | ||
1456 | id="text202-7-9-6-0" | ||
1457 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_migrate_callbacks()</text> | ||
1458 | <text | ||
1459 | xml:space="preserve" | ||
1460 | x="8768.4678" | ||
1461 | y="6224.9038" | ||
1462 | font-style="normal" | ||
1463 | font-weight="bold" | ||
1464 | font-size="192" | ||
1465 | id="text202-6-6-6" | ||
1466 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_advance_cbs()</text> | ||
1467 | <text | ||
1468 | xml:space="preserve" | ||
1469 | x="3467.9963" | ||
1470 | y="6987.9912" | ||
1471 | font-style="normal" | ||
1472 | font-weight="bold" | ||
1473 | font-size="192" | ||
1474 | id="text202-7-5-1-2-3" | ||
1475 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1476 | sodipodi:linespacing="125%"><tspan | ||
1477 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1478 | id="tspan3104-6">Leaf</tspan></text> | ||
1479 | <text | ||
1480 | xml:space="preserve" | ||
1481 | x="7220.106" | ||
1482 | y="6961.395" | ||
1483 | font-style="normal" | ||
1484 | font-weight="bold" | ||
1485 | font-size="192" | ||
1486 | id="text202-7-5-1-2-3-7" | ||
1487 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1488 | sodipodi:linespacing="125%"><tspan | ||
1489 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1490 | id="tspan3104-6-5">Leaf</tspan></text> | ||
1491 | <text | ||
1492 | xml:space="preserve" | ||
1493 | x="10905.331" | ||
1494 | y="6961.395" | ||
1495 | font-style="normal" | ||
1496 | font-weight="bold" | ||
1497 | font-size="192" | ||
1498 | id="text202-7-5-1-2-3-7-3" | ||
1499 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1500 | sodipodi:linespacing="125%"><tspan | ||
1501 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1502 | id="tspan3104-6-5-5">Leaf</tspan></text> | ||
1503 | <path | ||
1504 | sodipodi:type="arc" | ||
1505 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
1506 | id="path3084-3" | ||
1507 | sodipodi:cx="319.379" | ||
1508 | sodipodi:cy="345.54001" | ||
1509 | sodipodi:rx="65.917107" | ||
1510 | sodipodi:ry="39.550262" | ||
1511 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
1512 | transform="matrix(13.298129,0,0,13.298129,1872.6808,-2726.4833)" /> | ||
1513 | <text | ||
1514 | xml:space="preserve" | ||
1515 | x="5717.4517" | ||
1516 | y="1785.2073" | ||
1517 | font-style="normal" | ||
1518 | font-weight="bold" | ||
1519 | font-size="192" | ||
1520 | id="text202-7-5-1-2-6" | ||
1521 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1522 | sodipodi:linespacing="125%"><tspan | ||
1523 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1524 | id="tspan3104-7">Phase One</tspan></text> | ||
1525 | <text | ||
1526 | xml:space="preserve" | ||
1527 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1528 | x="6119.668" | ||
1529 | y="2005.6624" | ||
1530 | id="text3110-5" | ||
1531 | sodipodi:linespacing="125%"><tspan | ||
1532 | sodipodi:role="line" | ||
1533 | id="tspan3112-3" | ||
1534 | x="6119.668" | ||
1535 | y="2005.6624">of Update</tspan></text> | ||
1536 | <path | ||
1537 | sodipodi:nodetypes="cc" | ||
1538 | inkscape:connector-curvature="0" | ||
1539 | id="path3134-9-0-3-3" | ||
1540 | d="m 6169.6477,11384.719 0,8777.145" | ||
1541 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
1542 | <g | ||
1543 | style="fill:none;stroke-width:0.025in" | ||
1544 | transform="translate(1749.0282,658.72243)" | ||
1545 | id="g3188"> | ||
1546 | <text | ||
1547 | xml:space="preserve" | ||
1548 | x="3305.5364" | ||
1549 | y="13255.592" | ||
1550 | font-style="normal" | ||
1551 | font-weight="bold" | ||
1552 | font-size="192" | ||
1553 | id="text202-5" | ||
1554 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">rsp->gpnum++</text> | ||
1555 | <g | ||
1556 | id="g3107-62" | ||
1557 | transform="translate(947.90548,11584.029)"> | ||
1558 | <rect | ||
1559 | id="rect112-9" | ||
1560 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1561 | rx="0" | ||
1562 | height="1370.8721" | ||
1563 | width="2809.1992" | ||
1564 | y="949.37109" | ||
1565 | x="2084.55" /> | ||
1566 | <rect | ||
1567 | id="rect112-3-1" | ||
1568 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1569 | rx="0" | ||
1570 | height="1294.8468" | ||
1571 | width="2809.1992" | ||
1572 | y="1025.3964" | ||
1573 | x="2084.55" /> | ||
1574 | </g> | ||
1575 | <text | ||
1576 | xml:space="preserve" | ||
1577 | x="5452.3052" | ||
1578 | y="13844.535" | ||
1579 | font-style="normal" | ||
1580 | font-weight="bold" | ||
1581 | font-size="192" | ||
1582 | id="text202-7-5-1-2-3-7-2" | ||
1583 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1584 | sodipodi:linespacing="125%"><tspan | ||
1585 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1586 | id="tspan3104-6-5-7">Root</tspan></text> | ||
1587 | </g> | ||
1588 | <rect | ||
1589 | ry="0" | ||
1590 | id="rect118-0" | ||
1591 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057845, 60.00115689;stroke-dashoffset:0" | ||
1592 | rx="0" | ||
1593 | height="23612.516" | ||
1594 | width="13607.611" | ||
1595 | y="12709.474" | ||
1596 | x="-663.88806" /> | ||
1597 | <text | ||
1598 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1599 | id="text202-7-93" | ||
1600 | font-size="192" | ||
1601 | font-weight="bold" | ||
1602 | font-style="normal" | ||
1603 | y="12968.928" | ||
1604 | x="-548.11169" | ||
1605 | xml:space="preserve">rcu_gp_init()</text> | ||
1606 | <g | ||
1607 | style="fill:none;stroke-width:0.025in" | ||
1608 | transform="translate(1628.5648,695.08943)" | ||
1609 | id="g3147"> | ||
1610 | <g | ||
1611 | style="fill:none;stroke-width:0.025in" | ||
1612 | id="g3107-6" | ||
1613 | transform="translate(3054.6101,13760.052)"> | ||
1614 | <rect | ||
1615 | id="rect112-7" | ||
1616 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1617 | rx="0" | ||
1618 | height="1370.8721" | ||
1619 | width="2809.1992" | ||
1620 | y="949.37109" | ||
1621 | x="2084.55" /> | ||
1622 | <rect | ||
1623 | id="rect112-3-5" | ||
1624 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1625 | rx="0" | ||
1626 | height="1294.8468" | ||
1627 | width="2809.1992" | ||
1628 | y="1025.3964" | ||
1629 | x="2084.55" /> | ||
1630 | </g> | ||
1631 | </g> | ||
1632 | <g | ||
1633 | style="fill:none;stroke-width:0.025in" | ||
1634 | transform="translate(2479.6454,658.72243)" | ||
1635 | id="g3153"> | ||
1636 | <g | ||
1637 | style="fill:none;stroke-width:0.025in" | ||
1638 | id="g3107-6-9" | ||
1639 | transform="translate(5213.0126,16008.808)"> | ||
1640 | <rect | ||
1641 | id="rect112-7-1" | ||
1642 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1643 | rx="0" | ||
1644 | height="1370.8721" | ||
1645 | width="2809.1992" | ||
1646 | y="949.37109" | ||
1647 | x="2084.55" /> | ||
1648 | <rect | ||
1649 | id="rect112-3-5-2" | ||
1650 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1651 | rx="0" | ||
1652 | height="1294.8468" | ||
1653 | width="2809.1992" | ||
1654 | y="1025.3964" | ||
1655 | x="2084.55" /> | ||
1656 | </g> | ||
1657 | <text | ||
1658 | xml:space="preserve" | ||
1659 | x="9717.4141" | ||
1660 | y="18269.314" | ||
1661 | font-style="normal" | ||
1662 | font-weight="bold" | ||
1663 | font-size="192" | ||
1664 | id="text202-7-5-1-2-3-7-35-7" | ||
1665 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1666 | sodipodi:linespacing="125%"><tspan | ||
1667 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1668 | id="tspan3104-6-5-6-0">Leaf</tspan></text> | ||
1669 | </g> | ||
1670 | <g | ||
1671 | transform="translate(-2343.9166,695.08943)" | ||
1672 | id="g3147-3" | ||
1673 | style="fill:none;stroke-width:0.025in"> | ||
1674 | <g | ||
1675 | style="fill:none;stroke-width:0.025in" | ||
1676 | id="g3107-6-6" | ||
1677 | transform="translate(3054.6101,13760.052)"> | ||
1678 | <rect | ||
1679 | id="rect112-7-0" | ||
1680 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1681 | rx="0" | ||
1682 | height="1370.8721" | ||
1683 | width="2809.1992" | ||
1684 | y="949.37109" | ||
1685 | x="2084.55" /> | ||
1686 | <rect | ||
1687 | id="rect112-3-5-6" | ||
1688 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1689 | rx="0" | ||
1690 | height="1294.8468" | ||
1691 | width="2809.1992" | ||
1692 | y="1025.3964" | ||
1693 | x="2084.55" /> | ||
1694 | </g> | ||
1695 | </g> | ||
1696 | <g | ||
1697 | transform="translate(-853.09625,658.72243)" | ||
1698 | id="g3153-2" | ||
1699 | style="fill:none;stroke-width:0.025in"> | ||
1700 | <g | ||
1701 | style="fill:none;stroke-width:0.025in" | ||
1702 | id="g3107-6-9-6" | ||
1703 | transform="translate(5213.0126,16008.808)"> | ||
1704 | <rect | ||
1705 | id="rect112-7-1-1" | ||
1706 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1707 | rx="0" | ||
1708 | height="1370.8721" | ||
1709 | width="2809.1992" | ||
1710 | y="949.37109" | ||
1711 | x="2084.55" /> | ||
1712 | <rect | ||
1713 | id="rect112-3-5-2-8" | ||
1714 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1715 | rx="0" | ||
1716 | height="1294.8468" | ||
1717 | width="2809.1992" | ||
1718 | y="1025.3964" | ||
1719 | x="2084.55" /> | ||
1720 | </g> | ||
1721 | <text | ||
1722 | xml:space="preserve" | ||
1723 | x="9717.4141" | ||
1724 | y="18269.314" | ||
1725 | font-style="normal" | ||
1726 | font-weight="bold" | ||
1727 | font-size="192" | ||
1728 | id="text202-7-5-1-2-3-7-35-7-7" | ||
1729 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1730 | sodipodi:linespacing="125%"><tspan | ||
1731 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1732 | id="tspan3104-6-5-6-0-9">Leaf</tspan></text> | ||
1733 | </g> | ||
1734 | <g | ||
1735 | transform="translate(-4185.8377,658.72243)" | ||
1736 | id="g3153-20" | ||
1737 | style="fill:none;stroke-width:0.025in"> | ||
1738 | <g | ||
1739 | style="fill:none;stroke-width:0.025in" | ||
1740 | id="g3107-6-9-2" | ||
1741 | transform="translate(5213.0126,16008.808)"> | ||
1742 | <rect | ||
1743 | id="rect112-7-1-3" | ||
1744 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1745 | rx="0" | ||
1746 | height="1370.8721" | ||
1747 | width="2809.1992" | ||
1748 | y="949.37109" | ||
1749 | x="2084.55" /> | ||
1750 | <rect | ||
1751 | id="rect112-3-5-2-7" | ||
1752 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1753 | rx="0" | ||
1754 | height="1294.8468" | ||
1755 | width="2809.1992" | ||
1756 | y="1025.3964" | ||
1757 | x="2084.55" /> | ||
1758 | </g> | ||
1759 | <text | ||
1760 | xml:space="preserve" | ||
1761 | x="9717.4141" | ||
1762 | y="18269.314" | ||
1763 | font-style="normal" | ||
1764 | font-weight="bold" | ||
1765 | font-size="192" | ||
1766 | id="text202-7-5-1-2-3-7-35-7-5" | ||
1767 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1768 | sodipodi:linespacing="125%"><tspan | ||
1769 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1770 | id="tspan3104-6-5-6-0-92">Leaf</tspan></text> | ||
1771 | </g> | ||
1772 | <g | ||
1773 | transform="translate(-7518.5789,658.72243)" | ||
1774 | id="g3153-28" | ||
1775 | style="fill:none;stroke-width:0.025in"> | ||
1776 | <g | ||
1777 | style="fill:none;stroke-width:0.025in" | ||
1778 | id="g3107-6-9-9" | ||
1779 | transform="translate(5213.0126,16008.808)"> | ||
1780 | <rect | ||
1781 | id="rect112-7-1-7" | ||
1782 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1783 | rx="0" | ||
1784 | height="1370.8721" | ||
1785 | width="2809.1992" | ||
1786 | y="949.37109" | ||
1787 | x="2084.55" /> | ||
1788 | <rect | ||
1789 | id="rect112-3-5-2-3" | ||
1790 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1791 | rx="0" | ||
1792 | height="1294.8468" | ||
1793 | width="2809.1992" | ||
1794 | y="1025.3964" | ||
1795 | x="2084.55" /> | ||
1796 | </g> | ||
1797 | <text | ||
1798 | xml:space="preserve" | ||
1799 | x="9717.4141" | ||
1800 | y="18269.314" | ||
1801 | font-style="normal" | ||
1802 | font-weight="bold" | ||
1803 | font-size="192" | ||
1804 | id="text202-7-5-1-2-3-7-35-7-6" | ||
1805 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1806 | sodipodi:linespacing="125%"><tspan | ||
1807 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
1808 | id="tspan3104-6-5-6-0-1">Leaf</tspan></text> | ||
1809 | </g> | ||
1810 | <path | ||
1811 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1812 | d="m 4772.378,14541.058 -582.9982,865.094" | ||
1813 | id="path3414" | ||
1814 | inkscape:connector-curvature="0" /> | ||
1815 | <path | ||
1816 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1817 | d="m 7581.1599,14541.32 582.9982,865.094" | ||
1818 | id="path3414-9" | ||
1819 | inkscape:connector-curvature="0" /> | ||
1820 | <path | ||
1821 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1822 | d="m 2821.7449,16754.235 -582.9982,865.094" | ||
1823 | id="path3414-8" | ||
1824 | inkscape:connector-curvature="0" /> | ||
1825 | <path | ||
1826 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1827 | d="m 9566.7916,16754.497 583.0014,865.094" | ||
1828 | id="path3414-9-4" | ||
1829 | inkscape:connector-curvature="0" /> | ||
1830 | <path | ||
1831 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1832 | d="m 4238.2414,16754.235 0,846.288" | ||
1833 | id="path3414-8-3" | ||
1834 | inkscape:connector-curvature="0" | ||
1835 | sodipodi:nodetypes="cc" /> | ||
1836 | <path | ||
1837 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
1838 | d="m 8115.2166,16780.831 0,846.288" | ||
1839 | id="path3414-8-3-6" | ||
1840 | inkscape:connector-curvature="0" | ||
1841 | sodipodi:nodetypes="cc" /> | ||
1842 | <g | ||
1843 | id="g4504-3-9" | ||
1844 | transform="translate(4164.6575,-5087.5013)"> | ||
1845 | <path | ||
1846 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
1847 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
1848 | sodipodi:ry="39.550262" | ||
1849 | sodipodi:rx="65.917107" | ||
1850 | sodipodi:cy="345.54001" | ||
1851 | sodipodi:cx="319.379" | ||
1852 | id="path3084-6-1" | ||
1853 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
1854 | sodipodi:type="arc" /> | ||
1855 | <text | ||
1856 | sodipodi:linespacing="125%" | ||
1857 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1858 | id="text202-7-5-1-2-7-2" | ||
1859 | font-size="192" | ||
1860 | font-weight="bold" | ||
1861 | font-style="normal" | ||
1862 | y="16888.277" | ||
1863 | x="4344.877" | ||
1864 | xml:space="preserve"><tspan | ||
1865 | id="tspan3104-5-7" | ||
1866 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">End of</tspan></text> | ||
1867 | <text | ||
1868 | sodipodi:linespacing="125%" | ||
1869 | id="text3110-3-0" | ||
1870 | y="17119.1" | ||
1871 | x="4578.7886" | ||
1872 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1873 | xml:space="preserve"><tspan | ||
1874 | y="17119.1" | ||
1875 | x="4578.7886" | ||
1876 | id="tspan3112-5-9" | ||
1877 | sodipodi:role="line">Last Grace</tspan></text> | ||
1878 | <text | ||
1879 | sodipodi:linespacing="125%" | ||
1880 | id="text3114-6-3" | ||
1881 | y="17350.271" | ||
1882 | x="4581.7886" | ||
1883 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1884 | xml:space="preserve"><tspan | ||
1885 | y="17350.271" | ||
1886 | x="4581.7886" | ||
1887 | id="tspan3116-2-6" | ||
1888 | sodipodi:role="line">Period</tspan></text> | ||
1889 | </g> | ||
1890 | <path | ||
1891 | sodipodi:nodetypes="cc" | ||
1892 | inkscape:connector-curvature="0" | ||
1893 | id="path3134-9-0-3-5" | ||
1894 | d="m 7845.2122,11943.62 -1595.7756,0" | ||
1895 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send-36)" /> | ||
1896 | <path | ||
1897 | sodipodi:type="arc" | ||
1898 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
1899 | id="path3084-6" | ||
1900 | sodipodi:cx="319.379" | ||
1901 | sodipodi:cy="345.54001" | ||
1902 | sodipodi:rx="65.917107" | ||
1903 | sodipodi:ry="39.550262" | ||
1904 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
1905 | transform="matrix(13.298129,0,0,13.298129,1915.7264,6279.0065)" /> | ||
1906 | <text | ||
1907 | xml:space="preserve" | ||
1908 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1909 | x="6165.6357" | ||
1910 | y="10691.992" | ||
1911 | id="text3110-0" | ||
1912 | sodipodi:linespacing="125%"><tspan | ||
1913 | sodipodi:role="line" | ||
1914 | id="tspan3112-6" | ||
1915 | x="6165.6357" | ||
1916 | y="10691.992">Grace-period</tspan></text> | ||
1917 | <text | ||
1918 | xml:space="preserve" | ||
1919 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1920 | x="6162.8696" | ||
1921 | y="10947.994" | ||
1922 | id="text3114-2" | ||
1923 | sodipodi:linespacing="125%"><tspan | ||
1924 | sodipodi:role="line" | ||
1925 | id="tspan3116-6" | ||
1926 | x="6162.8696" | ||
1927 | y="10947.994">kernel thread</tspan></text> | ||
1928 | <text | ||
1929 | xml:space="preserve" | ||
1930 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1931 | x="6165.3237" | ||
1932 | y="11188.528" | ||
1933 | id="text3114-1" | ||
1934 | sodipodi:linespacing="125%"><tspan | ||
1935 | sodipodi:role="line" | ||
1936 | id="tspan3116-8" | ||
1937 | x="6165.3237" | ||
1938 | y="11188.528">awakened</tspan></text> | ||
1939 | <path | ||
1940 | sodipodi:nodetypes="cc" | ||
1941 | inkscape:connector-curvature="0" | ||
1942 | id="path3134-9-0-3-3-2" | ||
1943 | d="m 6161.6774,9725.7319 0,531.9251" | ||
1944 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
1945 | <path | ||
1946 | sodipodi:nodetypes="cccccccccccccccccccccccccccc" | ||
1947 | inkscape:connector-curvature="0" | ||
1948 | id="path3134-9-0-3-1" | ||
1949 | d="m 6169.1878,20208.525 -2.8277,1315.668 -5343.84363,17.12 -2.8276,6561.744 2039.08003,17.963 -2.7042,-2144.14 -491.6705,-0.211 -2.7042,-1993.689 1487.7179,-4.728 -17.7999,1812.453 2017.2372,-7.643 4.9533,-2151.572 -1405.5264,11.163 -10.9189,-1891.147 1739.2163,-2.718 -13.2006,4234.23 -1701.3596,1.395 -8.784,2107.712 1702.6392,-4.834 33.4144,-1867.716 1312.2491,12.923 14.608,1818.336 2000.0062,20.422 -12.279,-1841.411 1304.1668,1.615 -12.279,2032.706 -4638.6501,1.615 19.5828,569.038" | ||
1950 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
1951 | <g | ||
1952 | style="fill:none;stroke-width:0.025in" | ||
1953 | transform="translate(1618.635,9512.0768)" | ||
1954 | id="g3147-7"> | ||
1955 | <g | ||
1956 | style="fill:none;stroke-width:0.025in" | ||
1957 | id="g3107-6-8" | ||
1958 | transform="translate(3054.6101,13760.052)"> | ||
1959 | <rect | ||
1960 | id="rect112-7-4" | ||
1961 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1962 | rx="0" | ||
1963 | height="1370.8721" | ||
1964 | width="2809.1992" | ||
1965 | y="949.37109" | ||
1966 | x="2084.55" /> | ||
1967 | <rect | ||
1968 | id="rect112-3-5-5" | ||
1969 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1970 | rx="0" | ||
1971 | height="1294.8468" | ||
1972 | width="2809.1992" | ||
1973 | y="1025.3964" | ||
1974 | x="2084.55" /> | ||
1975 | </g> | ||
1976 | </g> | ||
1977 | <g | ||
1978 | style="fill:none;stroke-width:0.025in" | ||
1979 | transform="translate(2469.7158,9475.7098)" | ||
1980 | id="g3153-0"> | ||
1981 | <g | ||
1982 | style="fill:none;stroke-width:0.025in" | ||
1983 | id="g3107-6-9-3" | ||
1984 | transform="translate(5213.0126,16008.808)"> | ||
1985 | <rect | ||
1986 | id="rect112-7-1-6" | ||
1987 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1988 | rx="0" | ||
1989 | height="1370.8721" | ||
1990 | width="2809.1992" | ||
1991 | y="949.37109" | ||
1992 | x="2084.55" /> | ||
1993 | <rect | ||
1994 | id="rect112-3-5-2-1" | ||
1995 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
1996 | rx="0" | ||
1997 | height="1294.8468" | ||
1998 | width="2809.1992" | ||
1999 | y="1025.3964" | ||
2000 | x="2084.55" /> | ||
2001 | </g> | ||
2002 | <text | ||
2003 | xml:space="preserve" | ||
2004 | x="9717.4141" | ||
2005 | y="18269.314" | ||
2006 | font-style="normal" | ||
2007 | font-weight="bold" | ||
2008 | font-size="192" | ||
2009 | id="text202-7-5-1-2-3-7-35-7-0" | ||
2010 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2011 | sodipodi:linespacing="125%"><tspan | ||
2012 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2013 | id="tspan3104-6-5-6-0-6">Leaf</tspan></text> | ||
2014 | </g> | ||
2015 | <g | ||
2016 | transform="translate(-2353.8464,9512.0768)" | ||
2017 | id="g3147-3-3" | ||
2018 | style="fill:none;stroke-width:0.025in"> | ||
2019 | <g | ||
2020 | style="fill:none;stroke-width:0.025in" | ||
2021 | id="g3107-6-6-2" | ||
2022 | transform="translate(3054.6101,13760.052)"> | ||
2023 | <rect | ||
2024 | id="rect112-7-0-0" | ||
2025 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2026 | rx="0" | ||
2027 | height="1370.8721" | ||
2028 | width="2809.1992" | ||
2029 | y="949.37109" | ||
2030 | x="2084.55" /> | ||
2031 | <rect | ||
2032 | id="rect112-3-5-6-6" | ||
2033 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2034 | rx="0" | ||
2035 | height="1294.8468" | ||
2036 | width="2809.1992" | ||
2037 | y="1025.3964" | ||
2038 | x="2084.55" /> | ||
2039 | </g> | ||
2040 | <text | ||
2041 | xml:space="preserve" | ||
2042 | x="5398.415" | ||
2043 | y="15310.093" | ||
2044 | font-style="normal" | ||
2045 | font-weight="bold" | ||
2046 | font-size="192" | ||
2047 | id="text202-8" | ||
2048 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinit</text> | ||
2049 | <text | ||
2050 | xml:space="preserve" | ||
2051 | x="5398.415" | ||
2052 | y="15545.01" | ||
2053 | font-style="normal" | ||
2054 | font-weight="bold" | ||
2055 | font-size="192" | ||
2056 | id="text202-5-8" | ||
2057 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinitnext</text> | ||
2058 | </g> | ||
2059 | <g | ||
2060 | transform="translate(-863.02623,9475.7098)" | ||
2061 | id="g3153-2-1" | ||
2062 | style="fill:none;stroke-width:0.025in"> | ||
2063 | <g | ||
2064 | style="fill:none;stroke-width:0.025in" | ||
2065 | id="g3107-6-9-6-5" | ||
2066 | transform="translate(5213.0126,16008.808)"> | ||
2067 | <rect | ||
2068 | id="rect112-7-1-1-5" | ||
2069 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2070 | rx="0" | ||
2071 | height="1370.8721" | ||
2072 | width="2809.1992" | ||
2073 | y="949.37109" | ||
2074 | x="2084.55" /> | ||
2075 | <rect | ||
2076 | id="rect112-3-5-2-8-4" | ||
2077 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2078 | rx="0" | ||
2079 | height="1294.8468" | ||
2080 | width="2809.1992" | ||
2081 | y="1025.3964" | ||
2082 | x="2084.55" /> | ||
2083 | </g> | ||
2084 | <text | ||
2085 | xml:space="preserve" | ||
2086 | x="9717.4141" | ||
2087 | y="18269.314" | ||
2088 | font-style="normal" | ||
2089 | font-weight="bold" | ||
2090 | font-size="192" | ||
2091 | id="text202-7-5-1-2-3-7-35-7-7-7" | ||
2092 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2093 | sodipodi:linespacing="125%"><tspan | ||
2094 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2095 | id="tspan3104-6-5-6-0-9-6">Leaf</tspan></text> | ||
2096 | </g> | ||
2097 | <g | ||
2098 | transform="translate(-4195.7676,9475.7098)" | ||
2099 | id="g3153-20-5" | ||
2100 | style="fill:none;stroke-width:0.025in"> | ||
2101 | <g | ||
2102 | style="fill:none;stroke-width:0.025in" | ||
2103 | id="g3107-6-9-2-6" | ||
2104 | transform="translate(5213.0126,16008.808)"> | ||
2105 | <rect | ||
2106 | id="rect112-7-1-3-9" | ||
2107 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2108 | rx="0" | ||
2109 | height="1370.8721" | ||
2110 | width="2809.1992" | ||
2111 | y="949.37109" | ||
2112 | x="2084.55" /> | ||
2113 | <rect | ||
2114 | id="rect112-3-5-2-7-3" | ||
2115 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2116 | rx="0" | ||
2117 | height="1294.8468" | ||
2118 | width="2809.1992" | ||
2119 | y="1025.3964" | ||
2120 | x="2084.55" /> | ||
2121 | </g> | ||
2122 | <text | ||
2123 | xml:space="preserve" | ||
2124 | x="9717.4141" | ||
2125 | y="18269.314" | ||
2126 | font-style="normal" | ||
2127 | font-weight="bold" | ||
2128 | font-size="192" | ||
2129 | id="text202-7-5-1-2-3-7-35-7-5-7" | ||
2130 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2131 | sodipodi:linespacing="125%"><tspan | ||
2132 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2133 | id="tspan3104-6-5-6-0-92-4">Leaf</tspan></text> | ||
2134 | </g> | ||
2135 | <g | ||
2136 | transform="translate(-7528.5086,9475.7098)" | ||
2137 | id="g3153-28-5" | ||
2138 | style="fill:none;stroke-width:0.025in"> | ||
2139 | <g | ||
2140 | style="fill:none;stroke-width:0.025in" | ||
2141 | id="g3107-6-9-9-2" | ||
2142 | transform="translate(5213.0126,16008.808)"> | ||
2143 | <rect | ||
2144 | id="rect112-7-1-7-5" | ||
2145 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2146 | rx="0" | ||
2147 | height="1370.8721" | ||
2148 | width="2809.1992" | ||
2149 | y="949.37109" | ||
2150 | x="2084.55" /> | ||
2151 | <rect | ||
2152 | id="rect112-3-5-2-3-4" | ||
2153 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2154 | rx="0" | ||
2155 | height="1294.8468" | ||
2156 | width="2809.1992" | ||
2157 | y="1025.3964" | ||
2158 | x="2084.55" /> | ||
2159 | </g> | ||
2160 | <text | ||
2161 | xml:space="preserve" | ||
2162 | x="9717.4141" | ||
2163 | y="18269.314" | ||
2164 | font-style="normal" | ||
2165 | font-weight="bold" | ||
2166 | font-size="192" | ||
2167 | id="text202-7-5-1-2-3-7-35-7-6-7" | ||
2168 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2169 | sodipodi:linespacing="125%"><tspan | ||
2170 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2171 | id="tspan3104-6-5-6-0-1-4">Leaf</tspan></text> | ||
2172 | <text | ||
2173 | xml:space="preserve" | ||
2174 | x="7699.7246" | ||
2175 | y="17734.791" | ||
2176 | font-style="normal" | ||
2177 | font-weight="bold" | ||
2178 | font-size="192" | ||
2179 | id="text202-4" | ||
2180 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinit</text> | ||
2181 | </g> | ||
2182 | <path | ||
2183 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2184 | d="M 4762.4482,23358.047 4179.45,24223.141" | ||
2185 | id="path3414-4" | ||
2186 | inkscape:connector-curvature="0" /> | ||
2187 | <path | ||
2188 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2189 | d="m 7571.23,23358.309 582.9982,865.094" | ||
2190 | id="path3414-9-3" | ||
2191 | inkscape:connector-curvature="0" /> | ||
2192 | <path | ||
2193 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2194 | d="m 2811.8152,25571.224 -582.9982,865.094" | ||
2195 | id="path3414-8-0" | ||
2196 | inkscape:connector-curvature="0" /> | ||
2197 | <path | ||
2198 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2199 | d="m 9556.8622,25571.486 582.9988,865.094" | ||
2200 | id="path3414-9-4-7" | ||
2201 | inkscape:connector-curvature="0" /> | ||
2202 | <path | ||
2203 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2204 | d="m 4228.3115,25571.224 0,846.288" | ||
2205 | id="path3414-8-3-8" | ||
2206 | inkscape:connector-curvature="0" | ||
2207 | sodipodi:nodetypes="cc" /> | ||
2208 | <path | ||
2209 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2210 | d="m 8105.2867,25597.82 0,846.288" | ||
2211 | id="path3414-8-3-6-6" | ||
2212 | inkscape:connector-curvature="0" | ||
2213 | sodipodi:nodetypes="cc" /> | ||
2214 | <rect | ||
2215 | ry="0" | ||
2216 | id="rect118-1" | ||
2217 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115756;stroke-dashoffset:0" | ||
2218 | rx="0" | ||
2219 | height="4418.4302" | ||
2220 | width="4932.5845" | ||
2221 | y="21654.297" | ||
2222 | x="1395.3682" /> | ||
2223 | <text | ||
2224 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2225 | id="text202-7-2" | ||
2226 | font-size="192" | ||
2227 | font-weight="bold" | ||
2228 | font-style="normal" | ||
2229 | y="21852.52" | ||
2230 | x="1530.812" | ||
2231 | xml:space="preserve" | ||
2232 | sodipodi:linespacing="125%">rcu_init_new_rnp()<tspan | ||
2233 | style="font-size:192px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2234 | id="tspan3307"> or</tspan></text> | ||
2235 | <text | ||
2236 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2237 | id="text202-7-2-7" | ||
2238 | font-size="192" | ||
2239 | font-weight="bold" | ||
2240 | font-style="normal" | ||
2241 | y="22120.592" | ||
2242 | x="1530.812" | ||
2243 | xml:space="preserve">rcu_cleanup_dead_rnp()</text> | ||
2244 | <text | ||
2245 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2246 | id="text202-7-2-7-6" | ||
2247 | font-size="192" | ||
2248 | font-weight="bold" | ||
2249 | font-style="normal" | ||
2250 | y="22389.539" | ||
2251 | x="1533.6567" | ||
2252 | xml:space="preserve" | ||
2253 | sodipodi:linespacing="125%"><tspan | ||
2254 | style="font-size:192px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2255 | id="tspan3327">(optional)</tspan></text> | ||
2256 | <g | ||
2257 | style="fill:none;stroke-width:0.025in" | ||
2258 | transform="translate(1739.0986,9475.7098)" | ||
2259 | id="g3188-8"> | ||
2260 | <text | ||
2261 | xml:space="preserve" | ||
2262 | x="3305.5364" | ||
2263 | y="13255.592" | ||
2264 | font-style="normal" | ||
2265 | font-weight="bold" | ||
2266 | font-size="192" | ||
2267 | id="text202-84" | ||
2268 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">->qsmaskinit</text> | ||
2269 | <g | ||
2270 | id="g3107-31" | ||
2271 | transform="translate(947.90548,11584.029)"> | ||
2272 | <rect | ||
2273 | id="rect112-4" | ||
2274 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2275 | rx="0" | ||
2276 | height="1370.8721" | ||
2277 | width="2809.1992" | ||
2278 | y="949.37109" | ||
2279 | x="2084.55" /> | ||
2280 | <rect | ||
2281 | id="rect112-3-9" | ||
2282 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2283 | rx="0" | ||
2284 | height="1294.8468" | ||
2285 | width="2809.1992" | ||
2286 | y="1025.3964" | ||
2287 | x="2084.55" /> | ||
2288 | </g> | ||
2289 | <text | ||
2290 | xml:space="preserve" | ||
2291 | x="5452.3052" | ||
2292 | y="13844.535" | ||
2293 | font-style="normal" | ||
2294 | font-weight="bold" | ||
2295 | font-size="192" | ||
2296 | id="text202-7-5-1-2-3-7-20" | ||
2297 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2298 | sodipodi:linespacing="125%"><tspan | ||
2299 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2300 | id="tspan3104-6-5-6">Root</tspan></text> | ||
2301 | <text | ||
2302 | xml:space="preserve" | ||
2303 | x="3305.5364" | ||
2304 | y="13490.509" | ||
2305 | font-style="normal" | ||
2306 | font-weight="bold" | ||
2307 | font-size="192" | ||
2308 | id="text202-5-89" | ||
2309 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinitnext</text> | ||
2310 | </g> | ||
2311 | <path | ||
2312 | sodipodi:nodetypes="cccccccccccccccccccccccc" | ||
2313 | inkscape:connector-curvature="0" | ||
2314 | id="path3134-9-0-3-10" | ||
2315 | d="m 6187.9943,28881.474 -2.8275,2480.757 -2316.0141,-1.687 -2.8276,2179.854 2321.1757,-0.843 -2.7041,-1843.237 2404.5141,-0.212 16.1022,1993.267 -7783.83443,-4.728 -16.7937,2120.395 2033.10343,-23.534 2.0128,-1866.562 2051.9098,14.079 2.0128,1838.299 1280.8474,-4.728 14.608,-1830.104 1312.2492,12.923 14.608,1818.336 2000.0057,20.422 -12.279,-1841.411 1304.167,1.615 -12.279,2032.706 -4638.6499,1.615 19.5828,569.038" | ||
2316 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
2317 | <g | ||
2318 | style="fill:none;stroke-width:0.025in" | ||
2319 | transform="translate(1739.0986,17188.625)" | ||
2320 | id="g3188-6"> | ||
2321 | <text | ||
2322 | xml:space="preserve" | ||
2323 | x="3305.5364" | ||
2324 | y="13255.592" | ||
2325 | font-style="normal" | ||
2326 | font-weight="bold" | ||
2327 | font-size="192" | ||
2328 | id="text202-1" | ||
2329 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
2330 | <g | ||
2331 | id="g3107-5" | ||
2332 | transform="translate(947.90548,11584.029)"> | ||
2333 | <rect | ||
2334 | id="rect112-94" | ||
2335 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2336 | rx="0" | ||
2337 | height="1370.8721" | ||
2338 | width="2809.1992" | ||
2339 | y="949.37109" | ||
2340 | x="2084.55" /> | ||
2341 | <rect | ||
2342 | id="rect112-3-90" | ||
2343 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2344 | rx="0" | ||
2345 | height="1294.8468" | ||
2346 | width="2809.1992" | ||
2347 | y="1025.3964" | ||
2348 | x="2084.55" /> | ||
2349 | </g> | ||
2350 | <text | ||
2351 | xml:space="preserve" | ||
2352 | x="5452.3052" | ||
2353 | y="13844.535" | ||
2354 | font-style="normal" | ||
2355 | font-weight="bold" | ||
2356 | font-size="192" | ||
2357 | id="text202-7-5-1-2-3-7-9" | ||
2358 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2359 | sodipodi:linespacing="125%"><tspan | ||
2360 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2361 | id="tspan3104-6-5-1">Root</tspan></text> | ||
2362 | </g> | ||
2363 | <g | ||
2364 | style="fill:none;stroke-width:0.025in" | ||
2365 | transform="translate(1618.6352,17224.992)" | ||
2366 | id="g3147-1"> | ||
2367 | <g | ||
2368 | style="fill:none;stroke-width:0.025in" | ||
2369 | id="g3107-6-1" | ||
2370 | transform="translate(3054.6101,13760.052)"> | ||
2371 | <rect | ||
2372 | id="rect112-7-5" | ||
2373 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2374 | rx="0" | ||
2375 | height="1370.8721" | ||
2376 | width="2809.1992" | ||
2377 | y="949.37109" | ||
2378 | x="2084.55" /> | ||
2379 | <rect | ||
2380 | id="rect112-3-5-9" | ||
2381 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2382 | rx="0" | ||
2383 | height="1294.8468" | ||
2384 | width="2809.1992" | ||
2385 | y="1025.3964" | ||
2386 | x="2084.55" /> | ||
2387 | </g> | ||
2388 | <text | ||
2389 | xml:space="preserve" | ||
2390 | x="5392.3345" | ||
2391 | y="15407.104" | ||
2392 | font-style="normal" | ||
2393 | font-weight="bold" | ||
2394 | font-size="192" | ||
2395 | id="text202-6-7" | ||
2396 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
2397 | </g> | ||
2398 | <g | ||
2399 | style="fill:none;stroke-width:0.025in" | ||
2400 | transform="translate(2469.7158,17188.625)" | ||
2401 | id="g3153-7"> | ||
2402 | <g | ||
2403 | style="fill:none;stroke-width:0.025in" | ||
2404 | id="g3107-6-9-67" | ||
2405 | transform="translate(5213.0126,16008.808)"> | ||
2406 | <rect | ||
2407 | id="rect112-7-1-36" | ||
2408 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2409 | rx="0" | ||
2410 | height="1370.8721" | ||
2411 | width="2809.1992" | ||
2412 | y="949.37109" | ||
2413 | x="2084.55" /> | ||
2414 | <rect | ||
2415 | id="rect112-3-5-2-5" | ||
2416 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2417 | rx="0" | ||
2418 | height="1294.8468" | ||
2419 | width="2809.1992" | ||
2420 | y="1025.3964" | ||
2421 | x="2084.55" /> | ||
2422 | </g> | ||
2423 | <text | ||
2424 | xml:space="preserve" | ||
2425 | x="9717.4141" | ||
2426 | y="18269.314" | ||
2427 | font-style="normal" | ||
2428 | font-weight="bold" | ||
2429 | font-size="192" | ||
2430 | id="text202-7-5-1-2-3-7-35-7-63" | ||
2431 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2432 | sodipodi:linespacing="125%"><tspan | ||
2433 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2434 | id="tspan3104-6-5-6-0-94">Leaf</tspan></text> | ||
2435 | <text | ||
2436 | xml:space="preserve" | ||
2437 | x="7536.4883" | ||
2438 | y="17640.934" | ||
2439 | font-style="normal" | ||
2440 | font-weight="bold" | ||
2441 | font-size="192" | ||
2442 | id="text202-9" | ||
2443 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
2444 | </g> | ||
2445 | <g | ||
2446 | transform="translate(-2353.8462,17224.992)" | ||
2447 | id="g3147-3-8" | ||
2448 | style="fill:none;stroke-width:0.025in"> | ||
2449 | <g | ||
2450 | style="fill:none;stroke-width:0.025in" | ||
2451 | id="g3107-6-6-1" | ||
2452 | transform="translate(3054.6101,13760.052)"> | ||
2453 | <rect | ||
2454 | id="rect112-7-0-2" | ||
2455 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2456 | rx="0" | ||
2457 | height="1370.8721" | ||
2458 | width="2809.1992" | ||
2459 | y="949.37109" | ||
2460 | x="2084.55" /> | ||
2461 | <rect | ||
2462 | id="rect112-3-5-6-9" | ||
2463 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2464 | rx="0" | ||
2465 | height="1294.8468" | ||
2466 | width="2809.1992" | ||
2467 | y="1025.3964" | ||
2468 | x="2084.55" /> | ||
2469 | </g> | ||
2470 | <text | ||
2471 | xml:space="preserve" | ||
2472 | x="5378.4146" | ||
2473 | y="15436.927" | ||
2474 | font-style="normal" | ||
2475 | font-weight="bold" | ||
2476 | font-size="192" | ||
2477 | id="text202-3" | ||
2478 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
2479 | </g> | ||
2480 | <g | ||
2481 | transform="translate(-863.02613,17188.625)" | ||
2482 | id="g3153-2-3" | ||
2483 | style="fill:none;stroke-width:0.025in"> | ||
2484 | <g | ||
2485 | style="fill:none;stroke-width:0.025in" | ||
2486 | id="g3107-6-9-6-9" | ||
2487 | transform="translate(5213.0126,16008.808)"> | ||
2488 | <rect | ||
2489 | id="rect112-7-1-1-0" | ||
2490 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2491 | rx="0" | ||
2492 | height="1370.8721" | ||
2493 | width="2809.1992" | ||
2494 | y="949.37109" | ||
2495 | x="2084.55" /> | ||
2496 | <rect | ||
2497 | id="rect112-3-5-2-8-8" | ||
2498 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2499 | rx="0" | ||
2500 | height="1294.8468" | ||
2501 | width="2809.1992" | ||
2502 | y="1025.3964" | ||
2503 | x="2084.55" /> | ||
2504 | </g> | ||
2505 | <text | ||
2506 | xml:space="preserve" | ||
2507 | x="9717.4141" | ||
2508 | y="18269.314" | ||
2509 | font-style="normal" | ||
2510 | font-weight="bold" | ||
2511 | font-size="192" | ||
2512 | id="text202-7-5-1-2-3-7-35-7-7-8" | ||
2513 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2514 | sodipodi:linespacing="125%"><tspan | ||
2515 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2516 | id="tspan3104-6-5-6-0-9-5">Leaf</tspan></text> | ||
2517 | </g> | ||
2518 | <g | ||
2519 | transform="translate(-4195.7673,17188.625)" | ||
2520 | id="g3153-20-0" | ||
2521 | style="fill:none;stroke-width:0.025in"> | ||
2522 | <g | ||
2523 | style="fill:none;stroke-width:0.025in" | ||
2524 | id="g3107-6-9-2-9" | ||
2525 | transform="translate(5213.0126,16008.808)"> | ||
2526 | <rect | ||
2527 | id="rect112-7-1-3-6" | ||
2528 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2529 | rx="0" | ||
2530 | height="1370.8721" | ||
2531 | width="2809.1992" | ||
2532 | y="949.37109" | ||
2533 | x="2084.55" /> | ||
2534 | <rect | ||
2535 | id="rect112-3-5-2-7-38" | ||
2536 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2537 | rx="0" | ||
2538 | height="1294.8468" | ||
2539 | width="2809.1992" | ||
2540 | y="1025.3964" | ||
2541 | x="2084.55" /> | ||
2542 | </g> | ||
2543 | <text | ||
2544 | xml:space="preserve" | ||
2545 | x="9717.4141" | ||
2546 | y="18269.314" | ||
2547 | font-style="normal" | ||
2548 | font-weight="bold" | ||
2549 | font-size="192" | ||
2550 | id="text202-7-5-1-2-3-7-35-7-5-5" | ||
2551 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2552 | sodipodi:linespacing="125%"><tspan | ||
2553 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2554 | id="tspan3104-6-5-6-0-92-6">Leaf</tspan></text> | ||
2555 | <text | ||
2556 | xml:space="preserve" | ||
2557 | x="7520.1294" | ||
2558 | y="17673.639" | ||
2559 | font-style="normal" | ||
2560 | font-weight="bold" | ||
2561 | font-size="192" | ||
2562 | id="text202-35" | ||
2563 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
2564 | </g> | ||
2565 | <g | ||
2566 | transform="translate(-7528.5085,17188.625)" | ||
2567 | id="g3153-28-1" | ||
2568 | style="fill:none;stroke-width:0.025in"> | ||
2569 | <g | ||
2570 | style="fill:none;stroke-width:0.025in" | ||
2571 | id="g3107-6-9-9-1" | ||
2572 | transform="translate(5213.0126,16008.808)"> | ||
2573 | <rect | ||
2574 | id="rect112-7-1-7-59" | ||
2575 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2576 | rx="0" | ||
2577 | height="1370.8721" | ||
2578 | width="2809.1992" | ||
2579 | y="949.37109" | ||
2580 | x="2084.55" /> | ||
2581 | <rect | ||
2582 | id="rect112-3-5-2-3-8" | ||
2583 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2584 | rx="0" | ||
2585 | height="1294.8468" | ||
2586 | width="2809.1992" | ||
2587 | y="1025.3964" | ||
2588 | x="2084.55" /> | ||
2589 | </g> | ||
2590 | <text | ||
2591 | xml:space="preserve" | ||
2592 | x="9717.4141" | ||
2593 | y="18269.314" | ||
2594 | font-style="normal" | ||
2595 | font-weight="bold" | ||
2596 | font-size="192" | ||
2597 | id="text202-7-5-1-2-3-7-35-7-6-4" | ||
2598 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2599 | sodipodi:linespacing="125%"><tspan | ||
2600 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2601 | id="tspan3104-6-5-6-0-1-8">Leaf</tspan></text> | ||
2602 | <text | ||
2603 | xml:space="preserve" | ||
2604 | x="7521.4663" | ||
2605 | y="17666.062" | ||
2606 | font-style="normal" | ||
2607 | font-weight="bold" | ||
2608 | font-size="192" | ||
2609 | id="text202-75-1" | ||
2610 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
2611 | </g> | ||
2612 | <path | ||
2613 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2614 | d="m 4762.4484,31070.961 -582.9982,865.095" | ||
2615 | id="path3414-0" | ||
2616 | inkscape:connector-curvature="0" /> | ||
2617 | <path | ||
2618 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2619 | d="m 7571.2303,31071.223 582.9982,865.095" | ||
2620 | id="path3414-9-30" | ||
2621 | inkscape:connector-curvature="0" /> | ||
2622 | <path | ||
2623 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2624 | d="m 2811.8153,33284.138 -582.9982,865.094" | ||
2625 | id="path3414-8-4" | ||
2626 | inkscape:connector-curvature="0" /> | ||
2627 | <path | ||
2628 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2629 | d="m 9556.862,33284.401 582.999,865.093" | ||
2630 | id="path3414-9-4-4" | ||
2631 | inkscape:connector-curvature="0" /> | ||
2632 | <path | ||
2633 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2634 | d="m 4228.3118,33284.138 0,846.288" | ||
2635 | id="path3414-8-3-4" | ||
2636 | inkscape:connector-curvature="0" | ||
2637 | sodipodi:nodetypes="cc" /> | ||
2638 | <path | ||
2639 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2640 | d="m 8105.287,33310.734 0,846.288" | ||
2641 | id="path3414-8-3-6-4" | ||
2642 | inkscape:connector-curvature="0" | ||
2643 | sodipodi:nodetypes="cc" /> | ||
2644 | <text | ||
2645 | xml:space="preserve" | ||
2646 | x="6659.5469" | ||
2647 | y="34833.551" | ||
2648 | font-style="normal" | ||
2649 | font-weight="bold" | ||
2650 | font-size="192" | ||
2651 | id="text202-62" | ||
2652 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->gpnum = rsp->gpnum</text> | ||
2653 | <path | ||
2654 | sodipodi:nodetypes="ccc" | ||
2655 | inkscape:connector-curvature="0" | ||
2656 | id="path3134-9-0-3-1-8" | ||
2657 | d="m 11248.729,43927.515 3383.749,-0.843 7.995,1860.989" | ||
2658 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
2659 | <path | ||
2660 | sodipodi:nodetypes="ccc" | ||
2661 | inkscape:connector-curvature="0" | ||
2662 | id="path3134-9-0-3-1-3" | ||
2663 | d="m 14641.723,41609.377 -2.828,1541.346 -3303.353,-1.688" | ||
2664 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
2665 | <path | ||
2666 | sodipodi:nodetypes="ccc" | ||
2667 | inkscape:connector-curvature="0" | ||
2668 | id="path3134-9-0-3-1-6" | ||
2669 | d="m 816.24399,43920.114 -3929.12029,17.964 20.2152,2632.051" | ||
2670 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
2671 | <path | ||
2672 | sodipodi:nodetypes="ccc" | ||
2673 | inkscape:connector-curvature="0" | ||
2674 | id="path3134-9-0-3-1-3-2" | ||
2675 | d="m -3122.1199,40492.4 12.2312,2669.729 3867.53038,7.717" | ||
2676 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
2677 | <path | ||
2678 | sodipodi:nodetypes="cccccccccccccccccccccccccccc" | ||
2679 | inkscape:connector-curvature="0" | ||
2680 | id="path3134-9-0-3-4" | ||
2681 | d="m 6180.0812,36613.063 -2.827,638.638 -5325.0381,35.926 -9.78989,7279.202 2659.62569,0 0,-2260.682 -1196.8316,0 0,-1861.738 1462.7942,0 0,2127.7 3723.476,0 0,1861.738 2035.5457,-11.246 -12.28,-1788.219 1191.3338,1.616 15.928,1289.854 520.347,0.202 m 0,0 -15.641,-1570.133 -2629.7318,-18.604 3.165,-2124.92 -2305.4983,-7.354 0,-2287.279 5319.2511,0 0,7180.99 m 0,0 0,19229.094 -4441.5746,0" | ||
2682 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
2683 | <rect | ||
2684 | ry="0" | ||
2685 | id="rect118-7" | ||
2686 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115769;stroke-dashoffset:0" | ||
2687 | rx="0" | ||
2688 | height="8254.9336" | ||
2689 | width="14128.912" | ||
2690 | y="37009.492" | ||
2691 | x="-719.34235" /> | ||
2692 | <text | ||
2693 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2694 | id="text202-7-24" | ||
2695 | font-size="192" | ||
2696 | font-weight="bold" | ||
2697 | font-style="normal" | ||
2698 | y="37286.184" | ||
2699 | x="-573.74298" | ||
2700 | xml:space="preserve">rcu_gp_fqs()</text> | ||
2701 | <g | ||
2702 | style="fill:none;stroke-width:0.025in" | ||
2703 | transform="translate(1629.528,25916.616)" | ||
2704 | id="g3147-0"> | ||
2705 | <g | ||
2706 | style="fill:none;stroke-width:0.025in" | ||
2707 | id="g3107-6-62" | ||
2708 | transform="translate(3054.6101,13760.052)"> | ||
2709 | <rect | ||
2710 | id="rect112-7-9" | ||
2711 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2712 | rx="0" | ||
2713 | height="1370.8721" | ||
2714 | width="2809.1992" | ||
2715 | y="949.37109" | ||
2716 | x="2084.55" /> | ||
2717 | <rect | ||
2718 | id="rect112-3-5-90" | ||
2719 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2720 | rx="0" | ||
2721 | height="1294.8468" | ||
2722 | width="2809.1992" | ||
2723 | y="1025.3964" | ||
2724 | x="2084.55" /> | ||
2725 | </g> | ||
2726 | <text | ||
2727 | xml:space="preserve" | ||
2728 | x="5250.5327" | ||
2729 | y="15512.733" | ||
2730 | font-style="normal" | ||
2731 | font-weight="bold" | ||
2732 | font-size="192" | ||
2733 | id="text202-35-8" | ||
2734 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
2735 | </g> | ||
2736 | <g | ||
2737 | style="fill:none;stroke-width:0.025in" | ||
2738 | transform="translate(2480.6088,25880.249)" | ||
2739 | id="g3153-1"> | ||
2740 | <g | ||
2741 | style="fill:none;stroke-width:0.025in" | ||
2742 | id="g3107-6-9-31" | ||
2743 | transform="translate(5213.0126,16008.808)"> | ||
2744 | <rect | ||
2745 | id="rect112-7-1-10" | ||
2746 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2747 | rx="0" | ||
2748 | height="1370.8721" | ||
2749 | width="2809.1992" | ||
2750 | y="949.37109" | ||
2751 | x="2084.55" /> | ||
2752 | <rect | ||
2753 | id="rect112-3-5-2-34" | ||
2754 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2755 | rx="0" | ||
2756 | height="1294.8468" | ||
2757 | width="2809.1992" | ||
2758 | y="1025.3964" | ||
2759 | x="2084.55" /> | ||
2760 | </g> | ||
2761 | <text | ||
2762 | xml:space="preserve" | ||
2763 | x="9717.4141" | ||
2764 | y="18269.314" | ||
2765 | font-style="normal" | ||
2766 | font-weight="bold" | ||
2767 | font-size="192" | ||
2768 | id="text202-7-5-1-2-3-7-35-7-03" | ||
2769 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2770 | sodipodi:linespacing="125%"><tspan | ||
2771 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2772 | id="tspan3104-6-5-6-0-91">Leaf</tspan></text> | ||
2773 | </g> | ||
2774 | <g | ||
2775 | transform="translate(-2342.9531,25916.616)" | ||
2776 | id="g3147-3-9" | ||
2777 | style="fill:none;stroke-width:0.025in"> | ||
2778 | <g | ||
2779 | style="fill:none;stroke-width:0.025in" | ||
2780 | id="g3107-6-6-6" | ||
2781 | transform="translate(3054.6101,13760.052)"> | ||
2782 | <rect | ||
2783 | id="rect112-7-0-9" | ||
2784 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2785 | rx="0" | ||
2786 | height="1370.8721" | ||
2787 | width="2809.1992" | ||
2788 | y="949.37109" | ||
2789 | x="2084.55" /> | ||
2790 | <rect | ||
2791 | id="rect112-3-5-6-3" | ||
2792 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2793 | rx="0" | ||
2794 | height="1294.8468" | ||
2795 | width="2809.1992" | ||
2796 | y="1025.3964" | ||
2797 | x="2084.55" /> | ||
2798 | </g> | ||
2799 | <text | ||
2800 | xml:space="preserve" | ||
2801 | x="5284.6885" | ||
2802 | y="15500.379" | ||
2803 | font-style="normal" | ||
2804 | font-weight="bold" | ||
2805 | font-size="192" | ||
2806 | id="text202-6-3" | ||
2807 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
2808 | </g> | ||
2809 | <g | ||
2810 | transform="translate(-852.13285,25880.249)" | ||
2811 | id="g3153-2-8" | ||
2812 | style="fill:none;stroke-width:0.025in"> | ||
2813 | <g | ||
2814 | style="fill:none;stroke-width:0.025in" | ||
2815 | id="g3107-6-9-6-0" | ||
2816 | transform="translate(5213.0126,16008.808)"> | ||
2817 | <rect | ||
2818 | id="rect112-7-1-1-56" | ||
2819 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2820 | rx="0" | ||
2821 | height="1370.8721" | ||
2822 | width="2809.1992" | ||
2823 | y="949.37109" | ||
2824 | x="2084.55" /> | ||
2825 | <rect | ||
2826 | id="rect112-3-5-2-8-6" | ||
2827 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2828 | rx="0" | ||
2829 | height="1294.8468" | ||
2830 | width="2809.1992" | ||
2831 | y="1025.3964" | ||
2832 | x="2084.55" /> | ||
2833 | </g> | ||
2834 | <text | ||
2835 | xml:space="preserve" | ||
2836 | x="9717.4141" | ||
2837 | y="18269.314" | ||
2838 | font-style="normal" | ||
2839 | font-weight="bold" | ||
2840 | font-size="192" | ||
2841 | id="text202-7-5-1-2-3-7-35-7-7-4" | ||
2842 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2843 | sodipodi:linespacing="125%"><tspan | ||
2844 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2845 | id="tspan3104-6-5-6-0-9-0">Leaf</tspan></text> | ||
2846 | </g> | ||
2847 | <g | ||
2848 | transform="translate(-4184.8743,25880.249)" | ||
2849 | id="g3153-20-04" | ||
2850 | style="fill:none;stroke-width:0.025in"> | ||
2851 | <g | ||
2852 | style="fill:none;stroke-width:0.025in" | ||
2853 | id="g3107-6-9-2-62" | ||
2854 | transform="translate(5213.0126,16008.808)"> | ||
2855 | <rect | ||
2856 | id="rect112-7-1-3-67" | ||
2857 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2858 | rx="0" | ||
2859 | height="1370.8721" | ||
2860 | width="2809.1992" | ||
2861 | y="949.37109" | ||
2862 | x="2084.55" /> | ||
2863 | <rect | ||
2864 | id="rect112-3-5-2-7-5" | ||
2865 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2866 | rx="0" | ||
2867 | height="1294.8468" | ||
2868 | width="2809.1992" | ||
2869 | y="1025.3964" | ||
2870 | x="2084.55" /> | ||
2871 | </g> | ||
2872 | <text | ||
2873 | xml:space="preserve" | ||
2874 | x="9717.4141" | ||
2875 | y="18269.314" | ||
2876 | font-style="normal" | ||
2877 | font-weight="bold" | ||
2878 | font-size="192" | ||
2879 | id="text202-7-5-1-2-3-7-35-7-5-6" | ||
2880 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2881 | sodipodi:linespacing="125%"><tspan | ||
2882 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2883 | id="tspan3104-6-5-6-0-92-9">Leaf</tspan></text> | ||
2884 | </g> | ||
2885 | <g | ||
2886 | transform="translate(-7517.6112,25880.249)" | ||
2887 | id="g3153-28-8" | ||
2888 | style="fill:none;stroke-width:0.025in"> | ||
2889 | <g | ||
2890 | style="fill:none;stroke-width:0.025in" | ||
2891 | id="g3107-6-9-9-7" | ||
2892 | transform="translate(5213.0126,16008.808)"> | ||
2893 | <rect | ||
2894 | id="rect112-7-1-7-2" | ||
2895 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2896 | rx="0" | ||
2897 | height="1370.8721" | ||
2898 | width="2809.1992" | ||
2899 | y="949.37109" | ||
2900 | x="2084.55" /> | ||
2901 | <rect | ||
2902 | id="rect112-3-5-2-3-82" | ||
2903 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
2904 | rx="0" | ||
2905 | height="1294.8468" | ||
2906 | width="2809.1992" | ||
2907 | y="1025.3964" | ||
2908 | x="2084.55" /> | ||
2909 | </g> | ||
2910 | <text | ||
2911 | xml:space="preserve" | ||
2912 | x="9717.4141" | ||
2913 | y="18269.314" | ||
2914 | font-style="normal" | ||
2915 | font-weight="bold" | ||
2916 | font-size="192" | ||
2917 | id="text202-7-5-1-2-3-7-35-7-6-9" | ||
2918 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2919 | sodipodi:linespacing="125%"><tspan | ||
2920 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2921 | id="tspan3104-6-5-6-0-1-9">Leaf</tspan></text> | ||
2922 | <text | ||
2923 | xml:space="preserve" | ||
2924 | x="7428.2939" | ||
2925 | y="17707.271" | ||
2926 | font-style="normal" | ||
2927 | font-weight="bold" | ||
2928 | font-size="192" | ||
2929 | id="text202-75-6" | ||
2930 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
2931 | </g> | ||
2932 | <path | ||
2933 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2934 | d="m 4773.3421,39762.585 -582.9986,865.094" | ||
2935 | id="path3414-02" | ||
2936 | inkscape:connector-curvature="0" /> | ||
2937 | <path | ||
2938 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2939 | d="m 7582.1232,39762.847 582.999,865.094" | ||
2940 | id="path3414-9-7" | ||
2941 | inkscape:connector-curvature="0" /> | ||
2942 | <path | ||
2943 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2944 | d="m 2822.7083,41975.762 -582.9982,865.094" | ||
2945 | id="path3414-8-6" | ||
2946 | inkscape:connector-curvature="0" /> | ||
2947 | <path | ||
2948 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2949 | d="m 9567.7542,41976.024 583.0018,865.094" | ||
2950 | id="path3414-9-4-1" | ||
2951 | inkscape:connector-curvature="0" /> | ||
2952 | <path | ||
2953 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2954 | d="m 4239.2048,41975.762 0,846.288" | ||
2955 | id="path3414-8-3-3" | ||
2956 | inkscape:connector-curvature="0" | ||
2957 | sodipodi:nodetypes="cc" /> | ||
2958 | <path | ||
2959 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
2960 | d="m 8116.1802,42002.358 0,846.288" | ||
2961 | id="path3414-8-3-6-2" | ||
2962 | inkscape:connector-curvature="0" | ||
2963 | sodipodi:nodetypes="cc" /> | ||
2964 | <rect | ||
2965 | ry="0" | ||
2966 | id="rect118-1-1" | ||
2967 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057924, 60.00115835;stroke-dashoffset:0" | ||
2968 | rx="0" | ||
2969 | height="7164.1621" | ||
2970 | width="13301.43" | ||
2971 | y="37551.07" | ||
2972 | x="-474.37598" /> | ||
2973 | <text | ||
2974 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2975 | id="text202-7-2-5" | ||
2976 | font-size="192" | ||
2977 | font-weight="bold" | ||
2978 | font-style="normal" | ||
2979 | y="37802.488" | ||
2980 | x="-342.01831" | ||
2981 | xml:space="preserve" | ||
2982 | sodipodi:linespacing="125%">force_qs_rnp()<tspan | ||
2983 | style="font-size:192px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
2984 | id="tspan3307-9" /></text> | ||
2985 | <text | ||
2986 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
2987 | id="text202-7-2-7-9" | ||
2988 | font-size="192" | ||
2989 | font-weight="bold" | ||
2990 | font-style="normal" | ||
2991 | y="38114.047" | ||
2992 | x="-334.33856" | ||
2993 | xml:space="preserve">dyntick_save_progress_counter()</text> | ||
2994 | <g | ||
2995 | style="fill:none;stroke-width:0.025in" | ||
2996 | transform="translate(1749.9916,25880.249)" | ||
2997 | id="g3188-1"> | ||
2998 | <g | ||
2999 | id="g3107-4" | ||
3000 | transform="translate(947.90548,11584.029)"> | ||
3001 | <rect | ||
3002 | id="rect112-91" | ||
3003 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3004 | rx="0" | ||
3005 | height="1370.8721" | ||
3006 | width="2809.1992" | ||
3007 | y="949.37109" | ||
3008 | x="2084.55" /> | ||
3009 | <rect | ||
3010 | id="rect112-3-0" | ||
3011 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3012 | rx="0" | ||
3013 | height="1294.8468" | ||
3014 | width="2809.1992" | ||
3015 | y="1025.3964" | ||
3016 | x="2084.55" /> | ||
3017 | </g> | ||
3018 | <text | ||
3019 | xml:space="preserve" | ||
3020 | x="5452.3052" | ||
3021 | y="13844.535" | ||
3022 | font-style="normal" | ||
3023 | font-weight="bold" | ||
3024 | font-size="192" | ||
3025 | id="text202-7-5-1-2-3-7-7" | ||
3026 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3027 | sodipodi:linespacing="125%"><tspan | ||
3028 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
3029 | id="tspan3104-6-5-58">Root</tspan></text> | ||
3030 | <text | ||
3031 | xml:space="preserve" | ||
3032 | x="3158.8521" | ||
3033 | y="13313.027" | ||
3034 | font-style="normal" | ||
3035 | font-weight="bold" | ||
3036 | font-size="192" | ||
3037 | id="text202-70" | ||
3038 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
3039 | </g> | ||
3040 | <text | ||
3041 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3042 | id="text202-7-2-7-2" | ||
3043 | font-size="192" | ||
3044 | font-weight="bold" | ||
3045 | font-style="normal" | ||
3046 | y="38425.035" | ||
3047 | x="-337.79462" | ||
3048 | xml:space="preserve">rcu_implicit_dynticks_qs()</text> | ||
3049 | <text | ||
3050 | xml:space="preserve" | ||
3051 | x="9907.8887" | ||
3052 | y="43568.723" | ||
3053 | font-style="normal" | ||
3054 | font-weight="bold" | ||
3055 | font-size="192" | ||
3056 | id="text202-62-4" | ||
3057 | style="font-size:192.00001526px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
3058 | <g | ||
3059 | id="g4504" | ||
3060 | transform="translate(10024.106,24062.466)"> | ||
3061 | <path | ||
3062 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
3063 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
3064 | sodipodi:ry="39.550262" | ||
3065 | sodipodi:rx="65.917107" | ||
3066 | sodipodi:cy="345.54001" | ||
3067 | sodipodi:cx="319.379" | ||
3068 | id="path3089" | ||
3069 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
3070 | sodipodi:type="arc" /> | ||
3071 | <text | ||
3072 | sodipodi:linespacing="125%" | ||
3073 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3074 | id="text202-7-5-1-2-80" | ||
3075 | font-size="192" | ||
3076 | font-weight="bold" | ||
3077 | font-style="normal" | ||
3078 | y="16835.086" | ||
3079 | x="4409.043" | ||
3080 | xml:space="preserve"><tspan | ||
3081 | id="tspan3104-4" | ||
3082 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
3083 | <text | ||
3084 | sodipodi:linespacing="125%" | ||
3085 | id="text3110-29" | ||
3086 | y="17055.541" | ||
3087 | x="4579.373" | ||
3088 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3089 | xml:space="preserve"><tspan | ||
3090 | y="17055.541" | ||
3091 | x="4579.373" | ||
3092 | id="tspan3112-61" | ||
3093 | sodipodi:role="line">read-side</tspan></text> | ||
3094 | <text | ||
3095 | sodipodi:linespacing="125%" | ||
3096 | id="text3114-04" | ||
3097 | y="17297.08" | ||
3098 | x="4584.8276" | ||
3099 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3100 | xml:space="preserve"><tspan | ||
3101 | y="17297.08" | ||
3102 | x="4584.8276" | ||
3103 | id="tspan3116-22" | ||
3104 | sodipodi:role="line">critical section</tspan></text> | ||
3105 | </g> | ||
3106 | <g | ||
3107 | id="g3148-9-9" | ||
3108 | transform="translate(9995.8972,46544.783)"> | ||
3109 | <rect | ||
3110 | x="3592.3828" | ||
3111 | y="-4715.7246" | ||
3112 | width="3164.783" | ||
3113 | height="769.99048" | ||
3114 | rx="0" | ||
3115 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
3116 | id="rect118-3-5-1-3" | ||
3117 | ry="0" /> | ||
3118 | <text | ||
3119 | xml:space="preserve" | ||
3120 | x="3745.7725" | ||
3121 | y="-4418.6582" | ||
3122 | font-style="normal" | ||
3123 | font-weight="bold" | ||
3124 | font-size="192" | ||
3125 | id="text202-7-5-3-27-6" | ||
3126 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_dynticks_eqs_enter()</text> | ||
3127 | <text | ||
3128 | xml:space="preserve" | ||
3129 | x="3745.7725" | ||
3130 | y="-4165.7954" | ||
3131 | font-style="normal" | ||
3132 | font-weight="bold" | ||
3133 | font-size="192" | ||
3134 | id="text202-7-5-3-27-0-0" | ||
3135 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">atomic_add_return()</text> | ||
3136 | </g> | ||
3137 | <g | ||
3138 | id="g3148-9-9-2" | ||
3139 | transform="translate(9995.8972,49205.888)"> | ||
3140 | <rect | ||
3141 | x="3592.3828" | ||
3142 | y="-4715.7246" | ||
3143 | width="3164.783" | ||
3144 | height="769.99048" | ||
3145 | rx="0" | ||
3146 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
3147 | id="rect118-3-5-1-3-6" | ||
3148 | ry="0" /> | ||
3149 | <text | ||
3150 | xml:space="preserve" | ||
3151 | x="3745.7725" | ||
3152 | y="-4418.6582" | ||
3153 | font-style="normal" | ||
3154 | font-weight="bold" | ||
3155 | font-size="192" | ||
3156 | id="text202-7-5-3-27-6-1" | ||
3157 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_dynticks_eqs_exit()</text> | ||
3158 | <text | ||
3159 | xml:space="preserve" | ||
3160 | x="3745.7725" | ||
3161 | y="-4165.7954" | ||
3162 | font-style="normal" | ||
3163 | font-weight="bold" | ||
3164 | font-size="192" | ||
3165 | id="text202-7-5-3-27-0-0-8" | ||
3166 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">atomic_add_return()</text> | ||
3167 | </g> | ||
3168 | <g | ||
3169 | id="g4504-7" | ||
3170 | transform="translate(10042.913,29290.642)"> | ||
3171 | <path | ||
3172 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
3173 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
3174 | sodipodi:ry="39.550262" | ||
3175 | sodipodi:rx="65.917107" | ||
3176 | sodipodi:cy="345.54001" | ||
3177 | sodipodi:cx="319.379" | ||
3178 | id="path3084-9" | ||
3179 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
3180 | sodipodi:type="arc" /> | ||
3181 | <text | ||
3182 | sodipodi:linespacing="125%" | ||
3183 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3184 | id="text202-7-5-1-2-2" | ||
3185 | font-size="192" | ||
3186 | font-weight="bold" | ||
3187 | font-style="normal" | ||
3188 | y="16835.086" | ||
3189 | x="4409.043" | ||
3190 | xml:space="preserve"><tspan | ||
3191 | id="tspan3104-0" | ||
3192 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
3193 | <text | ||
3194 | sodipodi:linespacing="125%" | ||
3195 | id="text3110-2" | ||
3196 | y="17055.541" | ||
3197 | x="4579.373" | ||
3198 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3199 | xml:space="preserve"><tspan | ||
3200 | y="17055.541" | ||
3201 | x="4579.373" | ||
3202 | id="tspan3112-3-2" | ||
3203 | sodipodi:role="line">read-side</tspan></text> | ||
3204 | <text | ||
3205 | sodipodi:linespacing="125%" | ||
3206 | id="text3114-7" | ||
3207 | y="17297.08" | ||
3208 | x="4584.8276" | ||
3209 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3210 | xml:space="preserve"><tspan | ||
3211 | y="17297.08" | ||
3212 | x="4584.8276" | ||
3213 | id="tspan3116-5" | ||
3214 | sodipodi:role="line">critical section</tspan></text> | ||
3215 | </g> | ||
3216 | <g | ||
3217 | id="g4504-6" | ||
3218 | transform="translate(-7705.0623,22903.647)"> | ||
3219 | <path | ||
3220 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
3221 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
3222 | sodipodi:ry="39.550262" | ||
3223 | sodipodi:rx="65.917107" | ||
3224 | sodipodi:cy="345.54001" | ||
3225 | sodipodi:cx="319.379" | ||
3226 | id="path3084-1" | ||
3227 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
3228 | sodipodi:type="arc" /> | ||
3229 | <text | ||
3230 | sodipodi:linespacing="125%" | ||
3231 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3232 | id="text202-7-5-1-2-8" | ||
3233 | font-size="192" | ||
3234 | font-weight="bold" | ||
3235 | font-style="normal" | ||
3236 | y="16835.086" | ||
3237 | x="4409.043" | ||
3238 | xml:space="preserve"><tspan | ||
3239 | id="tspan3104-7-0" | ||
3240 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
3241 | <text | ||
3242 | sodipodi:linespacing="125%" | ||
3243 | id="text3110-9" | ||
3244 | y="17055.541" | ||
3245 | x="4579.373" | ||
3246 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3247 | xml:space="preserve"><tspan | ||
3248 | y="17055.541" | ||
3249 | x="4579.373" | ||
3250 | id="tspan3112-2" | ||
3251 | sodipodi:role="line">read-side</tspan></text> | ||
3252 | <text | ||
3253 | sodipodi:linespacing="125%" | ||
3254 | id="text3114-0" | ||
3255 | y="17297.08" | ||
3256 | x="4584.8276" | ||
3257 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3258 | xml:space="preserve"><tspan | ||
3259 | y="17297.08" | ||
3260 | x="4584.8276" | ||
3261 | id="tspan3116-2" | ||
3262 | sodipodi:role="line">critical section</tspan></text> | ||
3263 | </g> | ||
3264 | <g | ||
3265 | id="g3148-9-9-3" | ||
3266 | transform="translate(-8306.8632,45879.159)"> | ||
3267 | <rect | ||
3268 | x="3592.3828" | ||
3269 | y="-4981.6865" | ||
3270 | width="3728.9751" | ||
3271 | height="2265.0989" | ||
3272 | rx="0" | ||
3273 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
3274 | id="rect118-3-5-1-3-7" | ||
3275 | ry="0" /> | ||
3276 | <text | ||
3277 | xml:space="preserve" | ||
3278 | x="3745.7725" | ||
3279 | y="-4684.6201" | ||
3280 | font-style="normal" | ||
3281 | font-weight="bold" | ||
3282 | font-size="192" | ||
3283 | id="text202-7-5-3-27-6-5" | ||
3284 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_report_dead()</text> | ||
3285 | <text | ||
3286 | xml:space="preserve" | ||
3287 | x="3745.7725" | ||
3288 | y="-4431.7573" | ||
3289 | font-style="normal" | ||
3290 | font-weight="bold" | ||
3291 | font-size="192" | ||
3292 | id="text202-7-5-3-27-0-0-9" | ||
3293 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_cleanup_dying_idle_cpu()</text> | ||
3294 | <g | ||
3295 | transform="translate(1783.3183,-5255.3491)" | ||
3296 | id="g3107-7-5" | ||
3297 | style="fill:none;stroke-width:0.025in"> | ||
3298 | <rect | ||
3299 | x="2084.55" | ||
3300 | y="949.37109" | ||
3301 | width="2809.1992" | ||
3302 | height="1370.8721" | ||
3303 | rx="0" | ||
3304 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3305 | id="rect112-5-3" /> | ||
3306 | <rect | ||
3307 | x="2084.55" | ||
3308 | y="1025.3964" | ||
3309 | width="2809.1992" | ||
3310 | height="1294.8468" | ||
3311 | rx="0" | ||
3312 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3313 | id="rect112-3-3-5" /> | ||
3314 | </g> | ||
3315 | <text | ||
3316 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3317 | id="text202-6-6-2-6" | ||
3318 | font-size="192" | ||
3319 | font-weight="bold" | ||
3320 | font-style="normal" | ||
3321 | y="-3526.4448" | ||
3322 | x="4241.8574" | ||
3323 | xml:space="preserve">->qsmaskinitnext</text> | ||
3324 | <text | ||
3325 | sodipodi:linespacing="125%" | ||
3326 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3327 | id="text202-7-5-1-2-3-2" | ||
3328 | font-size="192" | ||
3329 | font-weight="bold" | ||
3330 | font-style="normal" | ||
3331 | y="-2987.4167" | ||
3332 | x="6305.1484" | ||
3333 | xml:space="preserve"><tspan | ||
3334 | id="tspan3104-6-9" | ||
3335 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Leaf</tspan></text> | ||
3336 | </g> | ||
3337 | <g | ||
3338 | id="g4504-7-2" | ||
3339 | transform="translate(-7686.2563,30073.332)"> | ||
3340 | <path | ||
3341 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
3342 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
3343 | sodipodi:ry="39.550262" | ||
3344 | sodipodi:rx="65.917107" | ||
3345 | sodipodi:cy="345.54001" | ||
3346 | sodipodi:cx="319.379" | ||
3347 | id="path3084-9-2" | ||
3348 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
3349 | sodipodi:type="arc" /> | ||
3350 | <text | ||
3351 | sodipodi:linespacing="125%" | ||
3352 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3353 | id="text202-7-5-1-2-2-8" | ||
3354 | font-size="192" | ||
3355 | font-weight="bold" | ||
3356 | font-style="normal" | ||
3357 | y="16835.086" | ||
3358 | x="4409.043" | ||
3359 | xml:space="preserve"><tspan | ||
3360 | id="tspan3104-0-9" | ||
3361 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
3362 | <text | ||
3363 | sodipodi:linespacing="125%" | ||
3364 | id="text3110-2-7" | ||
3365 | y="17055.541" | ||
3366 | x="4579.373" | ||
3367 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3368 | xml:space="preserve"><tspan | ||
3369 | y="17055.541" | ||
3370 | x="4579.373" | ||
3371 | id="tspan3112-3-3" | ||
3372 | sodipodi:role="line">read-side</tspan></text> | ||
3373 | <text | ||
3374 | sodipodi:linespacing="125%" | ||
3375 | id="text3114-7-6" | ||
3376 | y="17297.08" | ||
3377 | x="4584.8276" | ||
3378 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3379 | xml:space="preserve"><tspan | ||
3380 | y="17297.08" | ||
3381 | x="4584.8276" | ||
3382 | id="tspan3116-5-1" | ||
3383 | sodipodi:role="line">critical section</tspan></text> | ||
3384 | </g> | ||
3385 | <g | ||
3386 | id="g3206" | ||
3387 | transform="translate(-752.44253,40565.329)"> | ||
3388 | <rect | ||
3389 | ry="0" | ||
3390 | id="rect118-3-5-1-3-1" | ||
3391 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00058007, 60.00116001;stroke-dashoffset:0" | ||
3392 | rx="0" | ||
3393 | height="2265.0989" | ||
3394 | width="3728.9751" | ||
3395 | y="3382.2036" | ||
3396 | x="-3958.3845" /> | ||
3397 | <text | ||
3398 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3399 | id="text202-7-5-3-27-6-2" | ||
3400 | font-size="192" | ||
3401 | font-weight="bold" | ||
3402 | font-style="normal" | ||
3403 | y="3679.27" | ||
3404 | x="-3804.9949" | ||
3405 | xml:space="preserve">rcu_cpu_starting()</text> | ||
3406 | <g | ||
3407 | style="fill:none;stroke-width:0.025in" | ||
3408 | id="g3107-7-5-0" | ||
3409 | transform="translate(-5767.4491,3108.5424)"> | ||
3410 | <rect | ||
3411 | id="rect112-5-3-9" | ||
3412 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3413 | rx="0" | ||
3414 | height="1370.8721" | ||
3415 | width="2809.1992" | ||
3416 | y="949.37109" | ||
3417 | x="2084.55" /> | ||
3418 | <rect | ||
3419 | id="rect112-3-3-5-3" | ||
3420 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3421 | rx="0" | ||
3422 | height="1294.8468" | ||
3423 | width="2809.1992" | ||
3424 | y="1025.3964" | ||
3425 | x="2084.55" /> | ||
3426 | </g> | ||
3427 | <text | ||
3428 | xml:space="preserve" | ||
3429 | x="-3308.9099" | ||
3430 | y="4837.4453" | ||
3431 | font-style="normal" | ||
3432 | font-weight="bold" | ||
3433 | font-size="192" | ||
3434 | id="text202-6-6-2-6-6" | ||
3435 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinitnext</text> | ||
3436 | <text | ||
3437 | xml:space="preserve" | ||
3438 | x="-1245.6189" | ||
3439 | y="5376.4731" | ||
3440 | font-style="normal" | ||
3441 | font-weight="bold" | ||
3442 | font-size="192" | ||
3443 | id="text202-7-5-1-2-3-2-0" | ||
3444 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3445 | sodipodi:linespacing="125%"><tspan | ||
3446 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
3447 | id="tspan3104-6-9-6">Leaf</tspan></text> | ||
3448 | </g> | ||
3449 | <path | ||
3450 | sodipodi:nodetypes="cc" | ||
3451 | inkscape:connector-curvature="0" | ||
3452 | id="path3134-9-0-3-1-3-6" | ||
3453 | d="m 10723.215,43926.861 467.335,8.625" | ||
3454 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
3455 | <path | ||
3456 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send-8)" | ||
3457 | d="m 4431.0572,60276.11 16.472,2346.582" | ||
3458 | id="path3134-9-0-3-1-9-9" | ||
3459 | inkscape:connector-curvature="0" | ||
3460 | sodipodi:nodetypes="cc" /> | ||
3461 | <g | ||
3462 | style="fill:none;stroke-width:0.025in" | ||
3463 | transform="translate(-59.697399,41012.242)" | ||
3464 | id="g3188-83"> | ||
3465 | <text | ||
3466 | xml:space="preserve" | ||
3467 | x="3172.5554" | ||
3468 | y="13255.592" | ||
3469 | font-style="normal" | ||
3470 | font-weight="bold" | ||
3471 | font-size="192" | ||
3472 | id="text202-80" | ||
3473 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
3474 | <g | ||
3475 | id="g3107-40" | ||
3476 | transform="translate(947.90548,11584.029)"> | ||
3477 | <rect | ||
3478 | id="rect112-919" | ||
3479 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3480 | rx="0" | ||
3481 | height="1370.8721" | ||
3482 | width="2809.1992" | ||
3483 | y="949.37109" | ||
3484 | x="2084.55" /> | ||
3485 | <rect | ||
3486 | id="rect112-3-6" | ||
3487 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3488 | rx="0" | ||
3489 | height="1294.8468" | ||
3490 | width="2809.1992" | ||
3491 | y="1025.3964" | ||
3492 | x="2084.55" /> | ||
3493 | </g> | ||
3494 | <text | ||
3495 | xml:space="preserve" | ||
3496 | x="5452.3052" | ||
3497 | y="13844.535" | ||
3498 | font-style="normal" | ||
3499 | font-weight="bold" | ||
3500 | font-size="192" | ||
3501 | id="text202-7-5-1-2-3-7-25" | ||
3502 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3503 | sodipodi:linespacing="125%"><tspan | ||
3504 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
3505 | id="tspan3104-6-5-4">Root</tspan></text> | ||
3506 | </g> | ||
3507 | <rect | ||
3508 | ry="0" | ||
3509 | id="rect118-4" | ||
3510 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057845, 60.00115689;stroke-dashoffset:0" | ||
3511 | rx="0" | ||
3512 | height="7164.1641" | ||
3513 | width="13639.945" | ||
3514 | y="52743.297" | ||
3515 | x="-2453.8081" /> | ||
3516 | <text | ||
3517 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3518 | id="text202-7-99" | ||
3519 | font-size="192" | ||
3520 | font-weight="bold" | ||
3521 | font-style="normal" | ||
3522 | y="52950.113" | ||
3523 | x="-2356.8381" | ||
3524 | xml:space="preserve">rcu_report_rnp()</text> | ||
3525 | <g | ||
3526 | style="fill:none;stroke-width:0.025in" | ||
3527 | transform="translate(-180.16099,41048.609)" | ||
3528 | id="g3147-36"> | ||
3529 | <g | ||
3530 | style="fill:none;stroke-width:0.025in" | ||
3531 | id="g3107-6-0" | ||
3532 | transform="translate(3054.6101,13760.052)"> | ||
3533 | <rect | ||
3534 | id="rect112-7-50" | ||
3535 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3536 | rx="0" | ||
3537 | height="1370.8721" | ||
3538 | width="2809.1992" | ||
3539 | y="949.37109" | ||
3540 | x="2084.55" /> | ||
3541 | <rect | ||
3542 | id="rect112-3-5-29" | ||
3543 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3544 | rx="0" | ||
3545 | height="1294.8468" | ||
3546 | width="2809.1992" | ||
3547 | y="1025.3964" | ||
3548 | x="2084.55" /> | ||
3549 | </g> | ||
3550 | </g> | ||
3551 | <g | ||
3552 | style="fill:none;stroke-width:0.025in" | ||
3553 | transform="translate(670.91971,41012.242)" | ||
3554 | id="g3153-4"> | ||
3555 | <g | ||
3556 | style="fill:none;stroke-width:0.025in" | ||
3557 | id="g3107-6-9-35" | ||
3558 | transform="translate(5213.0126,16008.808)"> | ||
3559 | <rect | ||
3560 | id="rect112-7-1-17" | ||
3561 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3562 | rx="0" | ||
3563 | height="1370.8721" | ||
3564 | width="2809.1992" | ||
3565 | y="949.37109" | ||
3566 | x="2084.55" /> | ||
3567 | <rect | ||
3568 | id="rect112-3-5-2-4" | ||
3569 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3570 | rx="0" | ||
3571 | height="1294.8468" | ||
3572 | width="2809.1992" | ||
3573 | y="1025.3964" | ||
3574 | x="2084.55" /> | ||
3575 | </g> | ||
3576 | <text | ||
3577 | xml:space="preserve" | ||
3578 | x="9717.4141" | ||
3579 | y="18269.314" | ||
3580 | font-style="normal" | ||
3581 | font-weight="bold" | ||
3582 | font-size="192" | ||
3583 | id="text202-7-5-1-2-3-7-35-7-3" | ||
3584 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3585 | sodipodi:linespacing="125%"><tspan | ||
3586 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
3587 | id="tspan3104-6-5-6-0-14">Leaf</tspan></text> | ||
3588 | </g> | ||
3589 | <g | ||
3590 | transform="translate(-4152.6419,41048.609)" | ||
3591 | id="g3147-3-6" | ||
3592 | style="fill:none;stroke-width:0.025in"> | ||
3593 | <g | ||
3594 | style="fill:none;stroke-width:0.025in" | ||
3595 | id="g3107-6-6-9" | ||
3596 | transform="translate(3054.6101,13760.052)"> | ||
3597 | <rect | ||
3598 | id="rect112-7-0-4" | ||
3599 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3600 | rx="0" | ||
3601 | height="1370.8721" | ||
3602 | width="2809.1992" | ||
3603 | y="949.37109" | ||
3604 | x="2084.55" /> | ||
3605 | <rect | ||
3606 | id="rect112-3-5-6-2" | ||
3607 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3608 | rx="0" | ||
3609 | height="1294.8468" | ||
3610 | width="2809.1992" | ||
3611 | y="1025.3964" | ||
3612 | x="2084.55" /> | ||
3613 | </g> | ||
3614 | <text | ||
3615 | xml:space="preserve" | ||
3616 | x="5284.9155" | ||
3617 | y="15386.685" | ||
3618 | font-style="normal" | ||
3619 | font-weight="bold" | ||
3620 | font-size="192" | ||
3621 | id="text202-3-2" | ||
3622 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
3623 | </g> | ||
3624 | <g | ||
3625 | transform="translate(-2661.8217,41012.242)" | ||
3626 | id="g3153-2-6" | ||
3627 | style="fill:none;stroke-width:0.025in"> | ||
3628 | <g | ||
3629 | style="fill:none;stroke-width:0.025in" | ||
3630 | id="g3107-6-9-6-4" | ||
3631 | transform="translate(5213.0126,16008.808)"> | ||
3632 | <rect | ||
3633 | id="rect112-7-1-1-1" | ||
3634 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3635 | rx="0" | ||
3636 | height="1370.8721" | ||
3637 | width="2809.1992" | ||
3638 | y="949.37109" | ||
3639 | x="2084.55" /> | ||
3640 | <rect | ||
3641 | id="rect112-3-5-2-8-2" | ||
3642 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3643 | rx="0" | ||
3644 | height="1294.8468" | ||
3645 | width="2809.1992" | ||
3646 | y="1025.3964" | ||
3647 | x="2084.55" /> | ||
3648 | </g> | ||
3649 | <text | ||
3650 | xml:space="preserve" | ||
3651 | x="9717.4141" | ||
3652 | y="18269.314" | ||
3653 | font-style="normal" | ||
3654 | font-weight="bold" | ||
3655 | font-size="192" | ||
3656 | id="text202-7-5-1-2-3-7-35-7-7-88" | ||
3657 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3658 | sodipodi:linespacing="125%"><tspan | ||
3659 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
3660 | id="tspan3104-6-5-6-0-9-9">Leaf</tspan></text> | ||
3661 | </g> | ||
3662 | <g | ||
3663 | transform="translate(-5994.5632,41012.242)" | ||
3664 | id="g3153-20-2" | ||
3665 | style="fill:none;stroke-width:0.025in"> | ||
3666 | <g | ||
3667 | style="fill:none;stroke-width:0.025in" | ||
3668 | id="g3107-6-9-2-8" | ||
3669 | transform="translate(5213.0126,16008.808)"> | ||
3670 | <rect | ||
3671 | id="rect112-7-1-3-8" | ||
3672 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3673 | rx="0" | ||
3674 | height="1370.8721" | ||
3675 | width="2809.1992" | ||
3676 | y="949.37109" | ||
3677 | x="2084.55" /> | ||
3678 | <rect | ||
3679 | id="rect112-3-5-2-7-8" | ||
3680 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3681 | rx="0" | ||
3682 | height="1294.8468" | ||
3683 | width="2809.1992" | ||
3684 | y="1025.3964" | ||
3685 | x="2084.55" /> | ||
3686 | </g> | ||
3687 | <text | ||
3688 | xml:space="preserve" | ||
3689 | x="9717.4141" | ||
3690 | y="18269.314" | ||
3691 | font-style="normal" | ||
3692 | font-weight="bold" | ||
3693 | font-size="192" | ||
3694 | id="text202-7-5-1-2-3-7-35-7-5-68" | ||
3695 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3696 | sodipodi:linespacing="125%"><tspan | ||
3697 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
3698 | id="tspan3104-6-5-6-0-92-3">Leaf</tspan></text> | ||
3699 | </g> | ||
3700 | <g | ||
3701 | transform="translate(-9327.3041,41012.242)" | ||
3702 | id="g3153-28-83" | ||
3703 | style="fill:none;stroke-width:0.025in"> | ||
3704 | <g | ||
3705 | style="fill:none;stroke-width:0.025in" | ||
3706 | id="g3107-6-9-9-3" | ||
3707 | transform="translate(5213.0126,16008.808)"> | ||
3708 | <rect | ||
3709 | id="rect112-7-1-7-3" | ||
3710 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3711 | rx="0" | ||
3712 | height="1370.8721" | ||
3713 | width="2809.1992" | ||
3714 | y="949.37109" | ||
3715 | x="2084.55" /> | ||
3716 | <rect | ||
3717 | id="rect112-3-5-2-3-80" | ||
3718 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3719 | rx="0" | ||
3720 | height="1294.8468" | ||
3721 | width="2809.1992" | ||
3722 | y="1025.3964" | ||
3723 | x="2084.55" /> | ||
3724 | </g> | ||
3725 | <text | ||
3726 | xml:space="preserve" | ||
3727 | x="9717.4141" | ||
3728 | y="18269.314" | ||
3729 | font-style="normal" | ||
3730 | font-weight="bold" | ||
3731 | font-size="192" | ||
3732 | id="text202-7-5-1-2-3-7-35-7-6-47" | ||
3733 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3734 | sodipodi:linespacing="125%"><tspan | ||
3735 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
3736 | id="tspan3104-6-5-6-0-1-6">Leaf</tspan></text> | ||
3737 | <text | ||
3738 | xml:space="preserve" | ||
3739 | x="7422.3945" | ||
3740 | y="17661.012" | ||
3741 | font-style="normal" | ||
3742 | font-weight="bold" | ||
3743 | font-size="192" | ||
3744 | id="text202-67" | ||
3745 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
3746 | </g> | ||
3747 | <path | ||
3748 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
3749 | d="m 2963.6526,54894.579 -582.9982,865.092" | ||
3750 | id="path3414-89" | ||
3751 | inkscape:connector-curvature="0" /> | ||
3752 | <path | ||
3753 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
3754 | d="m 5772.4344,54894.841 582.9982,865.092" | ||
3755 | id="path3414-9-0" | ||
3756 | inkscape:connector-curvature="0" /> | ||
3757 | <path | ||
3758 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
3759 | d="m 1013.0193,57107.754 -582.99819,865.094" | ||
3760 | id="path3414-8-68" | ||
3761 | inkscape:connector-curvature="0" /> | ||
3762 | <path | ||
3763 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
3764 | d="m 7758.0666,57108.016 583,865.094" | ||
3765 | id="path3414-9-4-79" | ||
3766 | inkscape:connector-curvature="0" /> | ||
3767 | <path | ||
3768 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
3769 | d="m 2429.5159,57107.754 0,846.288" | ||
3770 | id="path3414-8-3-0" | ||
3771 | inkscape:connector-curvature="0" | ||
3772 | sodipodi:nodetypes="cc" /> | ||
3773 | <path | ||
3774 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
3775 | d="m 6306.4911,57134.35 0,846.288" | ||
3776 | id="path3414-8-3-6-3" | ||
3777 | inkscape:connector-curvature="0" | ||
3778 | sodipodi:nodetypes="cc" /> | ||
3779 | <path | ||
3780 | sodipodi:nodetypes="cccccccccccccccc" | ||
3781 | inkscape:connector-curvature="0" | ||
3782 | id="path3134-9-0-3-33" | ||
3783 | d="m 4421.0737,51833.378 -2.8276,1315.669 -5343.84362,17.119 -2.8276,6561.745 2039.08002,17.963 -2.7043,-2144.141 -491.67069,-0.211 -2.7042,-1993.689 1487.71819,-4.728 -17.8001,1812.453 2017.2374,-7.643 4.9532,-2151.571 -1405.5263,11.162 -10.9191,-1891.146 1739.2165,-2.718 0.1197,7086.03" | ||
3784 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
3785 | <path | ||
3786 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
3787 | d="m 4432.9209,44194.481 8.8008,4666.688 -2616.9163,17.119 15.9788,1446.406 2603.2718,-0.843 -29.6181,2086.665" | ||
3788 | id="path3134-9-0-3-1-7" | ||
3789 | inkscape:connector-curvature="0" | ||
3790 | sodipodi:nodetypes="cccccc" /> | ||
3791 | <path | ||
3792 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" | ||
3793 | d="m 4423.9777,48861.171 2616.9159,17.119 -15.979,1465.213 -2584.4649,-19.65" | ||
3794 | id="path3134-9-0-3-1-9" | ||
3795 | inkscape:connector-curvature="0" | ||
3796 | sodipodi:nodetypes="cccc" /> | ||
3797 | <g | ||
3798 | transform="translate(-1706.1312,54634.242)" | ||
3799 | id="g3115"> | ||
3800 | <rect | ||
3801 | x="4485.6865" | ||
3802 | y="-8571.0352" | ||
3803 | width="3296.428" | ||
3804 | height="2199.2754" | ||
3805 | rx="0" | ||
3806 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057923, 60.00115859;stroke-dashoffset:0" | ||
3807 | id="rect118-3-3" | ||
3808 | ry="0" /> | ||
3809 | <g | ||
3810 | style="fill:none;stroke-width:0.025in" | ||
3811 | id="g3107-7-2" | ||
3812 | transform="translate(2656.673,-8952.2968)"> | ||
3813 | <rect | ||
3814 | id="rect112-5-6" | ||
3815 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3816 | rx="0" | ||
3817 | height="1370.8721" | ||
3818 | width="2809.1992" | ||
3819 | y="949.37109" | ||
3820 | x="2084.55" /> | ||
3821 | <rect | ||
3822 | id="rect112-3-3-52" | ||
3823 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
3824 | rx="0" | ||
3825 | height="1294.8468" | ||
3826 | width="2809.1992" | ||
3827 | y="1025.3964" | ||
3828 | x="2084.55" /> | ||
3829 | </g> | ||
3830 | <text | ||
3831 | xml:space="preserve" | ||
3832 | x="4714.3018" | ||
3833 | y="-8349.1943" | ||
3834 | font-style="normal" | ||
3835 | font-weight="bold" | ||
3836 | font-size="192" | ||
3837 | id="text202-7-5-6" | ||
3838 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">note_gp_changes()</text> | ||
3839 | <text | ||
3840 | xml:space="preserve" | ||
3841 | x="5014.2954" | ||
3842 | y="-7170.978" | ||
3843 | font-style="normal" | ||
3844 | font-weight="bold" | ||
3845 | font-size="192" | ||
3846 | id="text202-6-6-5" | ||
3847 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rdp->gpnum</text> | ||
3848 | <text | ||
3849 | xml:space="preserve" | ||
3850 | x="5035.4155" | ||
3851 | y="-7436.1636" | ||
3852 | font-style="normal" | ||
3853 | font-weight="bold" | ||
3854 | font-size="192" | ||
3855 | id="text202-6-6-2-8" | ||
3856 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">__note_gp_changes()</text> | ||
3857 | <text | ||
3858 | xml:space="preserve" | ||
3859 | x="7162.7471" | ||
3860 | y="-6692.6006" | ||
3861 | font-style="normal" | ||
3862 | font-weight="bold" | ||
3863 | font-size="192" | ||
3864 | id="text202-7-5-1-2-3-79" | ||
3865 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3866 | sodipodi:linespacing="125%"><tspan | ||
3867 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
3868 | id="tspan3104-6-6">Leaf</tspan></text> | ||
3869 | </g> | ||
3870 | <g | ||
3871 | transform="translate(-3299.9731,54048.57)" | ||
3872 | id="g3148"> | ||
3873 | <rect | ||
3874 | ry="0" | ||
3875 | id="rect118-3-5" | ||
3876 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
3877 | rx="0" | ||
3878 | height="412.66794" | ||
3879 | width="3240.0085" | ||
3880 | y="-4640.499" | ||
3881 | x="3517.1572" /> | ||
3882 | <text | ||
3883 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3884 | id="text202-7-5-3" | ||
3885 | font-size="192" | ||
3886 | font-weight="bold" | ||
3887 | font-style="normal" | ||
3888 | y="-4418.6582" | ||
3889 | x="3745.7725" | ||
3890 | xml:space="preserve">rcu_node_context_switch()</text> | ||
3891 | </g> | ||
3892 | <g | ||
3893 | transform="translate(1881.1886,54048.57)" | ||
3894 | id="g3148-5"> | ||
3895 | <rect | ||
3896 | ry="0" | ||
3897 | id="rect118-3-5-6" | ||
3898 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
3899 | rx="0" | ||
3900 | height="412.66794" | ||
3901 | width="3240.0085" | ||
3902 | y="-4640.499" | ||
3903 | x="3517.1572" /> | ||
3904 | <text | ||
3905 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3906 | id="text202-7-5-3-2" | ||
3907 | font-size="192" | ||
3908 | font-weight="bold" | ||
3909 | font-style="normal" | ||
3910 | y="-4418.6582" | ||
3911 | x="3745.7725" | ||
3912 | xml:space="preserve">rcu_check_callbacks()</text> | ||
3913 | </g> | ||
3914 | <g | ||
3915 | transform="translate(-850.30204,55463.106)" | ||
3916 | id="g3148-9"> | ||
3917 | <rect | ||
3918 | ry="0" | ||
3919 | id="rect118-3-5-1" | ||
3920 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
3921 | rx="0" | ||
3922 | height="864.02148" | ||
3923 | width="3540.9114" | ||
3924 | y="-4640.499" | ||
3925 | x="3517.1572" /> | ||
3926 | <text | ||
3927 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3928 | id="text202-7-5-3-27" | ||
3929 | font-size="192" | ||
3930 | font-weight="bold" | ||
3931 | font-style="normal" | ||
3932 | y="-4418.6582" | ||
3933 | x="3745.7725" | ||
3934 | xml:space="preserve">rcu_process_callbacks()</text> | ||
3935 | <text | ||
3936 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3937 | id="text202-7-5-3-27-0" | ||
3938 | font-size="192" | ||
3939 | font-weight="bold" | ||
3940 | font-style="normal" | ||
3941 | y="-4165.7954" | ||
3942 | x="3745.7725" | ||
3943 | xml:space="preserve">rcu_check_quiescent_state())</text> | ||
3944 | <text | ||
3945 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3946 | id="text202-7-5-3-27-0-9" | ||
3947 | font-size="192" | ||
3948 | font-weight="bold" | ||
3949 | font-style="normal" | ||
3950 | y="-3914.085" | ||
3951 | x="3745.7725" | ||
3952 | xml:space="preserve">rcu__report_qs_rdp())</text> | ||
3953 | </g> | ||
3954 | <g | ||
3955 | id="g4504-3" | ||
3956 | transform="translate(3886.2577,30763.697)"> | ||
3957 | <path | ||
3958 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
3959 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
3960 | sodipodi:ry="39.550262" | ||
3961 | sodipodi:rx="65.917107" | ||
3962 | sodipodi:cy="345.54001" | ||
3963 | sodipodi:cx="319.379" | ||
3964 | id="path3084-6-0" | ||
3965 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
3966 | sodipodi:type="arc" /> | ||
3967 | <text | ||
3968 | sodipodi:linespacing="125%" | ||
3969 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
3970 | id="text202-7-5-1-2-7" | ||
3971 | font-size="192" | ||
3972 | font-weight="bold" | ||
3973 | font-style="normal" | ||
3974 | y="16835.086" | ||
3975 | x="4409.043" | ||
3976 | xml:space="preserve"><tspan | ||
3977 | id="tspan3104-5" | ||
3978 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
3979 | <text | ||
3980 | sodipodi:linespacing="125%" | ||
3981 | id="text3110-3" | ||
3982 | y="17055.541" | ||
3983 | x="4579.373" | ||
3984 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3985 | xml:space="preserve"><tspan | ||
3986 | y="17055.541" | ||
3987 | x="4579.373" | ||
3988 | id="tspan3112-5" | ||
3989 | sodipodi:role="line">read-side</tspan></text> | ||
3990 | <text | ||
3991 | sodipodi:linespacing="125%" | ||
3992 | id="text3114-6" | ||
3993 | y="17297.08" | ||
3994 | x="4584.8276" | ||
3995 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
3996 | xml:space="preserve"><tspan | ||
3997 | y="17297.08" | ||
3998 | x="4584.8276" | ||
3999 | id="tspan3116-2-4" | ||
4000 | sodipodi:role="line">critical section</tspan></text> | ||
4001 | </g> | ||
4002 | <g | ||
4003 | id="g4504-3-9-1" | ||
4004 | transform="translate(3886.2577,34216.283)"> | ||
4005 | <path | ||
4006 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
4007 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
4008 | sodipodi:ry="39.550262" | ||
4009 | sodipodi:rx="65.917107" | ||
4010 | sodipodi:cy="345.54001" | ||
4011 | sodipodi:cx="319.379" | ||
4012 | id="path3084-6-1-0" | ||
4013 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
4014 | sodipodi:type="arc" /> | ||
4015 | <text | ||
4016 | sodipodi:linespacing="125%" | ||
4017 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4018 | id="text202-7-5-1-2-7-2-4" | ||
4019 | font-size="192" | ||
4020 | font-weight="bold" | ||
4021 | font-style="normal" | ||
4022 | y="16835.086" | ||
4023 | x="4409.043" | ||
4024 | xml:space="preserve"><tspan | ||
4025 | id="tspan3104-5-7-8" | ||
4026 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
4027 | <text | ||
4028 | sodipodi:linespacing="125%" | ||
4029 | id="text3110-3-0-7" | ||
4030 | y="17055.541" | ||
4031 | x="4579.373" | ||
4032 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4033 | xml:space="preserve"><tspan | ||
4034 | y="17055.541" | ||
4035 | x="4579.373" | ||
4036 | id="tspan3112-5-9-0" | ||
4037 | sodipodi:role="line">read-side</tspan></text> | ||
4038 | <text | ||
4039 | sodipodi:linespacing="125%" | ||
4040 | id="text3114-6-3-8" | ||
4041 | y="17297.08" | ||
4042 | x="4584.8276" | ||
4043 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4044 | xml:space="preserve"><tspan | ||
4045 | y="17297.08" | ||
4046 | x="4584.8276" | ||
4047 | id="tspan3116-2-6-6" | ||
4048 | sodipodi:role="line">critical section</tspan></text> | ||
4049 | </g> | ||
4050 | <g | ||
4051 | id="g4504-3-0" | ||
4052 | transform="translate(-4075.0211,30763.697)"> | ||
4053 | <path | ||
4054 | transform="matrix(13.298129,0,0,13.298129,228.84485,12456.379)" | ||
4055 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
4056 | sodipodi:ry="39.550262" | ||
4057 | sodipodi:rx="65.917107" | ||
4058 | sodipodi:cy="345.54001" | ||
4059 | sodipodi:cx="319.379" | ||
4060 | id="path3084-6-6" | ||
4061 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
4062 | sodipodi:type="arc" /> | ||
4063 | <text | ||
4064 | sodipodi:linespacing="125%" | ||
4065 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4066 | id="text202-7-5-1-2-7-26" | ||
4067 | font-size="192" | ||
4068 | font-weight="bold" | ||
4069 | font-style="normal" | ||
4070 | y="16835.086" | ||
4071 | x="4409.043" | ||
4072 | xml:space="preserve"><tspan | ||
4073 | id="tspan3104-5-1" | ||
4074 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
4075 | <text | ||
4076 | sodipodi:linespacing="125%" | ||
4077 | id="text3110-3-8" | ||
4078 | y="17055.541" | ||
4079 | x="4579.373" | ||
4080 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4081 | xml:space="preserve"><tspan | ||
4082 | y="17055.541" | ||
4083 | x="4579.373" | ||
4084 | id="tspan3112-5-7" | ||
4085 | sodipodi:role="line">read-side</tspan></text> | ||
4086 | <text | ||
4087 | sodipodi:linespacing="125%" | ||
4088 | id="text3114-6-9" | ||
4089 | y="17297.08" | ||
4090 | x="4584.8276" | ||
4091 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4092 | xml:space="preserve"><tspan | ||
4093 | y="17297.08" | ||
4094 | x="4584.8276" | ||
4095 | id="tspan3116-2-2" | ||
4096 | sodipodi:role="line">critical section</tspan></text> | ||
4097 | </g> | ||
4098 | <g | ||
4099 | id="g4504-3-9-0" | ||
4100 | transform="translate(-4181.4064,34216.283)"> | ||
4101 | <path | ||
4102 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
4103 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
4104 | sodipodi:ry="39.550262" | ||
4105 | sodipodi:rx="65.917107" | ||
4106 | sodipodi:cy="345.54001" | ||
4107 | sodipodi:cx="319.379" | ||
4108 | id="path3084-6-1-2" | ||
4109 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
4110 | sodipodi:type="arc" /> | ||
4111 | <text | ||
4112 | sodipodi:linespacing="125%" | ||
4113 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4114 | id="text202-7-5-1-2-7-2-3" | ||
4115 | font-size="192" | ||
4116 | font-weight="bold" | ||
4117 | font-style="normal" | ||
4118 | y="16835.086" | ||
4119 | x="4409.043" | ||
4120 | xml:space="preserve"><tspan | ||
4121 | id="tspan3104-5-7-7" | ||
4122 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
4123 | <text | ||
4124 | sodipodi:linespacing="125%" | ||
4125 | id="text3110-3-0-5" | ||
4126 | y="17055.541" | ||
4127 | x="4579.373" | ||
4128 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4129 | xml:space="preserve"><tspan | ||
4130 | y="17055.541" | ||
4131 | x="4579.373" | ||
4132 | id="tspan3112-5-9-9" | ||
4133 | sodipodi:role="line">read-side</tspan></text> | ||
4134 | <text | ||
4135 | sodipodi:linespacing="125%" | ||
4136 | id="text3114-6-3-2" | ||
4137 | y="17297.08" | ||
4138 | x="4584.8276" | ||
4139 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4140 | xml:space="preserve"><tspan | ||
4141 | y="17297.08" | ||
4142 | x="4584.8276" | ||
4143 | id="tspan3116-2-6-2" | ||
4144 | sodipodi:role="line">critical section</tspan></text> | ||
4145 | </g> | ||
4146 | <path | ||
4147 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" | ||
4148 | d="m 8448.9566,48370.097 0,2393.663" | ||
4149 | id="path3134-9-0-3-1-9-8" | ||
4150 | inkscape:connector-curvature="0" | ||
4151 | sodipodi:nodetypes="cc" /> | ||
4152 | <path | ||
4153 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" | ||
4154 | d="m 390.28991,48370.097 0,2393.663" | ||
4155 | id="path3134-9-0-3-1-9-8-9" | ||
4156 | inkscape:connector-curvature="0" | ||
4157 | sodipodi:nodetypes="cc" /> | ||
4158 | <g | ||
4159 | id="g4504-2" | ||
4160 | transform="translate(-143.72569,46137.076)"> | ||
4161 | <path | ||
4162 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
4163 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
4164 | sodipodi:ry="39.550262" | ||
4165 | sodipodi:rx="65.917107" | ||
4166 | sodipodi:cy="345.54001" | ||
4167 | sodipodi:cx="319.379" | ||
4168 | id="path3084-4" | ||
4169 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
4170 | sodipodi:type="arc" /> | ||
4171 | <text | ||
4172 | sodipodi:linespacing="125%" | ||
4173 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4174 | id="text202-7-5-1-2-79" | ||
4175 | font-size="192" | ||
4176 | font-weight="bold" | ||
4177 | font-style="normal" | ||
4178 | y="16835.086" | ||
4179 | x="4273.4326" | ||
4180 | xml:space="preserve"><tspan | ||
4181 | id="tspan3104-3" | ||
4182 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Wake up</tspan></text> | ||
4183 | <text | ||
4184 | sodipodi:linespacing="125%" | ||
4185 | id="text3110-92" | ||
4186 | y="17055.541" | ||
4187 | x="4585.2246" | ||
4188 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4189 | xml:space="preserve"><tspan | ||
4190 | y="17055.541" | ||
4191 | x="4585.2246" | ||
4192 | id="tspan3112-8" | ||
4193 | sodipodi:role="line">grace-period</tspan></text> | ||
4194 | <text | ||
4195 | sodipodi:linespacing="125%" | ||
4196 | id="text3114-3" | ||
4197 | y="17297.08" | ||
4198 | x="4582.3804" | ||
4199 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4200 | xml:space="preserve"><tspan | ||
4201 | y="17297.08" | ||
4202 | x="4582.3804" | ||
4203 | id="tspan3116-0" | ||
4204 | sodipodi:role="line">kernel thread</tspan></text> | ||
4205 | </g> | ||
4206 | <g | ||
4207 | transform="translate(-707.64089,66256.889)" | ||
4208 | id="g3148-2"> | ||
4209 | <rect | ||
4210 | ry="0" | ||
4211 | id="rect118-3-5-2" | ||
4212 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
4213 | rx="0" | ||
4214 | height="412.66794" | ||
4215 | width="3240.0085" | ||
4216 | y="-4640.499" | ||
4217 | x="3517.1572" /> | ||
4218 | <text | ||
4219 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4220 | id="text202-7-5-3-8" | ||
4221 | font-size="192" | ||
4222 | font-weight="bold" | ||
4223 | font-style="normal" | ||
4224 | y="-4418.6582" | ||
4225 | x="4064.9268" | ||
4226 | xml:space="preserve">rcu_report_qs_rsp()</text> | ||
4227 | </g> | ||
4228 | <path | ||
4229 | sodipodi:type="arc" | ||
4230 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
4231 | id="path3084-6-9" | ||
4232 | sodipodi:cx="319.379" | ||
4233 | sodipodi:cy="345.54001" | ||
4234 | sodipodi:rx="65.917107" | ||
4235 | sodipodi:ry="39.550262" | ||
4236 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
4237 | transform="matrix(13.298129,0,0,13.298129,2044.7501,59781.881)" /> | ||
4238 | <text | ||
4239 | xml:space="preserve" | ||
4240 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4241 | x="6294.6587" | ||
4242 | y="64194.863" | ||
4243 | id="text3110-0-1" | ||
4244 | sodipodi:linespacing="125%"><tspan | ||
4245 | sodipodi:role="line" | ||
4246 | id="tspan3112-6-5" | ||
4247 | x="6294.6587" | ||
4248 | y="64194.863">Grace-period</tspan></text> | ||
4249 | <text | ||
4250 | xml:space="preserve" | ||
4251 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4252 | x="6291.8931" | ||
4253 | y="64450.863" | ||
4254 | id="text3114-2-4" | ||
4255 | sodipodi:linespacing="125%"><tspan | ||
4256 | sodipodi:role="line" | ||
4257 | id="tspan3116-6-9" | ||
4258 | x="6291.8931" | ||
4259 | y="64450.863">kernel thread</tspan></text> | ||
4260 | <text | ||
4261 | xml:space="preserve" | ||
4262 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4263 | x="6294.3472" | ||
4264 | y="64691.398" | ||
4265 | id="text3114-1-2" | ||
4266 | sodipodi:linespacing="125%"><tspan | ||
4267 | sodipodi:role="line" | ||
4268 | id="tspan3116-8-5" | ||
4269 | x="6294.3472" | ||
4270 | y="64691.398">awakened</tspan></text> | ||
4271 | <path | ||
4272 | sodipodi:nodetypes="ccc" | ||
4273 | inkscape:connector-curvature="0" | ||
4274 | id="path3134-9-0-3-3-2-7" | ||
4275 | d="m 5310.5974,63210.805 984.0615,0 -3.9578,549.726" | ||
4276 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
4277 | <path | ||
4278 | sodipodi:nodetypes="cccccccccccccccccccccccc" | ||
4279 | inkscape:connector-curvature="0" | ||
4280 | id="path3134-9-0-3-99" | ||
4281 | d="m 6322.9337,64896.388 -2.8276,2480.757 -2316.0141,-1.687 -2.8276,2179.855 2321.1758,-0.844 -2.7042,-1843.237 2404.5142,-0.212 16.1023,1993.267 -7783.83452,-4.728 -16.79346,2120.395 2033.10318,-23.535 2.0128,-1866.561 2051.9096,14.08 2.0128,1838.298 1280.8474,-4.728 14.6081,-1830.105 1312.2491,12.923 14.608,1818.337 2000.0093,20.422 -12.279,-1841.412 1304.1722,1.616 -12.279,2032.706 -4638.6586,1.616 19.5827,569.037" | ||
4282 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
4283 | <g | ||
4284 | style="fill:none;stroke-width:0.025in" | ||
4285 | transform="translate(1874.038,53203.538)" | ||
4286 | id="g3188-7"> | ||
4287 | <text | ||
4288 | xml:space="preserve" | ||
4289 | x="3199.1516" | ||
4290 | y="13255.592" | ||
4291 | font-style="normal" | ||
4292 | font-weight="bold" | ||
4293 | font-size="192" | ||
4294 | id="text202-82" | ||
4295 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">->completed = ->gpnum</text> | ||
4296 | <g | ||
4297 | id="g3107-53" | ||
4298 | transform="translate(947.90548,11584.029)"> | ||
4299 | <rect | ||
4300 | id="rect112-49" | ||
4301 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4302 | rx="0" | ||
4303 | height="1370.8721" | ||
4304 | width="2809.1992" | ||
4305 | y="949.37109" | ||
4306 | x="2084.55" /> | ||
4307 | <rect | ||
4308 | id="rect112-3-02" | ||
4309 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4310 | rx="0" | ||
4311 | height="1294.8468" | ||
4312 | width="2809.1992" | ||
4313 | y="1025.3964" | ||
4314 | x="2084.55" /> | ||
4315 | </g> | ||
4316 | <text | ||
4317 | xml:space="preserve" | ||
4318 | x="5452.3052" | ||
4319 | y="13844.535" | ||
4320 | font-style="normal" | ||
4321 | font-weight="bold" | ||
4322 | font-size="192" | ||
4323 | id="text202-7-5-1-2-3-7-0" | ||
4324 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4325 | sodipodi:linespacing="125%"><tspan | ||
4326 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4327 | id="tspan3104-6-5-19">Root</tspan></text> | ||
4328 | </g> | ||
4329 | <rect | ||
4330 | ry="0" | ||
4331 | id="rect118-6" | ||
4332 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057845, 60.00115689;stroke-dashoffset:0" | ||
4333 | rx="0" | ||
4334 | height="14649.609" | ||
4335 | width="13482.601" | ||
4336 | y="65254.539" | ||
4337 | x="-538.87689" /> | ||
4338 | <text | ||
4339 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4340 | id="text202-7-21" | ||
4341 | font-size="192" | ||
4342 | font-weight="bold" | ||
4343 | font-style="normal" | ||
4344 | y="65513.996" | ||
4345 | x="-423.10056" | ||
4346 | xml:space="preserve">rcu_gp_cleanup()</text> | ||
4347 | <g | ||
4348 | style="fill:none;stroke-width:0.025in" | ||
4349 | transform="translate(1753.5744,53239.905)" | ||
4350 | id="g3147-2"> | ||
4351 | <g | ||
4352 | style="fill:none;stroke-width:0.025in" | ||
4353 | id="g3107-6-07" | ||
4354 | transform="translate(3054.6101,13760.052)"> | ||
4355 | <rect | ||
4356 | id="rect112-7-3" | ||
4357 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4358 | rx="0" | ||
4359 | height="1370.8721" | ||
4360 | width="2809.1992" | ||
4361 | y="949.37109" | ||
4362 | x="2084.55" /> | ||
4363 | <rect | ||
4364 | id="rect112-3-5-1" | ||
4365 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4366 | rx="0" | ||
4367 | height="1294.8468" | ||
4368 | width="2809.1992" | ||
4369 | y="1025.3964" | ||
4370 | x="2084.55" /> | ||
4371 | </g> | ||
4372 | <text | ||
4373 | xml:space="preserve" | ||
4374 | x="5324.5371" | ||
4375 | y="15414.598" | ||
4376 | font-style="normal" | ||
4377 | font-weight="bold" | ||
4378 | font-size="192" | ||
4379 | id="text202-753" | ||
4380 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
4381 | </g> | ||
4382 | <g | ||
4383 | style="fill:none;stroke-width:0.025in" | ||
4384 | id="g3107-6-9-1" | ||
4385 | transform="translate(7817.6676,69212.346)"> | ||
4386 | <rect | ||
4387 | id="rect112-7-1-90" | ||
4388 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4389 | rx="0" | ||
4390 | height="1370.8721" | ||
4391 | width="2809.1992" | ||
4392 | y="949.37109" | ||
4393 | x="2084.55" /> | ||
4394 | <rect | ||
4395 | id="rect112-3-5-2-56" | ||
4396 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4397 | rx="0" | ||
4398 | height="1294.8468" | ||
4399 | width="2809.1992" | ||
4400 | y="1025.3964" | ||
4401 | x="2084.55" /> | ||
4402 | </g> | ||
4403 | <text | ||
4404 | xml:space="preserve" | ||
4405 | x="12322.059" | ||
4406 | y="71472.641" | ||
4407 | font-style="normal" | ||
4408 | font-weight="bold" | ||
4409 | font-size="192" | ||
4410 | id="text202-7-5-1-2-3-7-35-7-77" | ||
4411 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4412 | sodipodi:linespacing="125%"><tspan | ||
4413 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4414 | id="tspan3104-6-5-6-0-4">Leaf</tspan></text> | ||
4415 | <text | ||
4416 | xml:space="preserve" | ||
4417 | x="10084.225" | ||
4418 | y="70903.312" | ||
4419 | font-style="normal" | ||
4420 | font-weight="bold" | ||
4421 | font-size="192" | ||
4422 | id="text202-9-0" | ||
4423 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
4424 | <path | ||
4425 | sodipodi:nodetypes="ccc" | ||
4426 | inkscape:connector-curvature="0" | ||
4427 | id="path3134-9-0-3-9" | ||
4428 | d="m 6315.6122,72629.054 -20.9533,8108.684 1648.968,0" | ||
4429 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
4430 | <text | ||
4431 | xml:space="preserve" | ||
4432 | x="5092.4683" | ||
4433 | y="74111.672" | ||
4434 | font-style="normal" | ||
4435 | font-weight="bold" | ||
4436 | font-size="192" | ||
4437 | id="text202-60" | ||
4438 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rsp->completed =</text> | ||
4439 | <g | ||
4440 | style="fill:none;stroke-width:0.025in" | ||
4441 | id="g3107-62-6" | ||
4442 | transform="translate(2814.6217,72520.234)"> | ||
4443 | <rect | ||
4444 | id="rect112-6" | ||
4445 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4446 | rx="0" | ||
4447 | height="1370.8721" | ||
4448 | width="2809.1992" | ||
4449 | y="949.37109" | ||
4450 | x="2084.55" /> | ||
4451 | <rect | ||
4452 | id="rect112-3-1-4" | ||
4453 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4454 | rx="0" | ||
4455 | height="1294.8468" | ||
4456 | width="2809.1992" | ||
4457 | y="1025.3964" | ||
4458 | x="2084.55" /> | ||
4459 | </g> | ||
4460 | <text | ||
4461 | xml:space="preserve" | ||
4462 | x="7319.022" | ||
4463 | y="74780.406" | ||
4464 | font-style="normal" | ||
4465 | font-weight="bold" | ||
4466 | font-size="192" | ||
4467 | id="text202-7-5-1-2-3-7-8" | ||
4468 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4469 | sodipodi:linespacing="125%"><tspan | ||
4470 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4471 | id="tspan3104-6-5-7-7">Root</tspan></text> | ||
4472 | <text | ||
4473 | xml:space="preserve" | ||
4474 | x="5092.4683" | ||
4475 | y="74325.906" | ||
4476 | font-style="normal" | ||
4477 | font-weight="bold" | ||
4478 | font-size="192" | ||
4479 | id="text202-60-3" | ||
4480 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier"> rnp->completed</text> | ||
4481 | <g | ||
4482 | style="fill:none;stroke-width:0.025in" | ||
4483 | transform="translate(1746.2528,60972.572)" | ||
4484 | id="g3147-9"> | ||
4485 | <g | ||
4486 | style="fill:none;stroke-width:0.025in" | ||
4487 | id="g3107-6-2" | ||
4488 | transform="translate(3054.6101,13760.052)"> | ||
4489 | <rect | ||
4490 | id="rect112-7-02" | ||
4491 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4492 | rx="0" | ||
4493 | height="1370.8721" | ||
4494 | width="2809.1992" | ||
4495 | y="949.37109" | ||
4496 | x="2084.55" /> | ||
4497 | <rect | ||
4498 | id="rect112-3-5-3" | ||
4499 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4500 | rx="0" | ||
4501 | height="1294.8468" | ||
4502 | width="2809.1992" | ||
4503 | y="1025.3964" | ||
4504 | x="2084.55" /> | ||
4505 | </g> | ||
4506 | </g> | ||
4507 | <g | ||
4508 | style="fill:none;stroke-width:0.025in" | ||
4509 | id="g3107-6-9-5" | ||
4510 | transform="translate(7810.3459,76945.013)"> | ||
4511 | <rect | ||
4512 | id="rect112-7-1-9" | ||
4513 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4514 | rx="0" | ||
4515 | height="1370.8721" | ||
4516 | width="2809.1992" | ||
4517 | y="949.37109" | ||
4518 | x="2084.55" /> | ||
4519 | <rect | ||
4520 | id="rect112-3-5-2-2" | ||
4521 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4522 | rx="0" | ||
4523 | height="1294.8468" | ||
4524 | width="2809.1992" | ||
4525 | y="1025.3964" | ||
4526 | x="2084.55" /> | ||
4527 | </g> | ||
4528 | <text | ||
4529 | xml:space="preserve" | ||
4530 | x="12314.736" | ||
4531 | y="79205.188" | ||
4532 | font-style="normal" | ||
4533 | font-weight="bold" | ||
4534 | font-size="192" | ||
4535 | id="text202-7-5-1-2-3-7-35-7-2" | ||
4536 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4537 | sodipodi:linespacing="125%"><tspan | ||
4538 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4539 | id="tspan3104-6-5-6-0-8">Leaf</tspan></text> | ||
4540 | <g | ||
4541 | transform="translate(-2226.2288,60972.572)" | ||
4542 | id="g3147-3-7" | ||
4543 | style="fill:none;stroke-width:0.025in"> | ||
4544 | <g | ||
4545 | style="fill:none;stroke-width:0.025in" | ||
4546 | id="g3107-6-6-3" | ||
4547 | transform="translate(3054.6101,13760.052)"> | ||
4548 | <rect | ||
4549 | id="rect112-7-0-6" | ||
4550 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4551 | rx="0" | ||
4552 | height="1370.8721" | ||
4553 | width="2809.1992" | ||
4554 | y="949.37109" | ||
4555 | x="2084.55" /> | ||
4556 | <rect | ||
4557 | id="rect112-3-5-6-1" | ||
4558 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4559 | rx="0" | ||
4560 | height="1294.8468" | ||
4561 | width="2809.1992" | ||
4562 | y="1025.3964" | ||
4563 | x="2084.55" /> | ||
4564 | </g> | ||
4565 | </g> | ||
4566 | <g | ||
4567 | transform="translate(-735.4075,60936.205)" | ||
4568 | id="g3153-2-9" | ||
4569 | style="fill:none;stroke-width:0.025in"> | ||
4570 | <g | ||
4571 | style="fill:none;stroke-width:0.025in" | ||
4572 | id="g3107-6-9-6-3" | ||
4573 | transform="translate(5213.0126,16008.808)"> | ||
4574 | <rect | ||
4575 | id="rect112-7-1-1-1-4" | ||
4576 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4577 | rx="0" | ||
4578 | height="1370.8721" | ||
4579 | width="2809.1992" | ||
4580 | y="949.37109" | ||
4581 | x="2084.55" /> | ||
4582 | <rect | ||
4583 | id="rect112-3-5-2-8-9" | ||
4584 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4585 | rx="0" | ||
4586 | height="1294.8468" | ||
4587 | width="2809.1992" | ||
4588 | y="1025.3964" | ||
4589 | x="2084.55" /> | ||
4590 | </g> | ||
4591 | <text | ||
4592 | xml:space="preserve" | ||
4593 | x="9717.4141" | ||
4594 | y="18269.314" | ||
4595 | font-style="normal" | ||
4596 | font-weight="bold" | ||
4597 | font-size="192" | ||
4598 | id="text202-7-5-1-2-3-7-35-7-7-4-8" | ||
4599 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4600 | sodipodi:linespacing="125%"><tspan | ||
4601 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4602 | id="tspan3104-6-5-6-0-9-7">Leaf</tspan></text> | ||
4603 | </g> | ||
4604 | <g | ||
4605 | transform="translate(-4068.1496,60936.205)" | ||
4606 | id="g3153-20-8" | ||
4607 | style="fill:none;stroke-width:0.025in"> | ||
4608 | <g | ||
4609 | style="fill:none;stroke-width:0.025in" | ||
4610 | id="g3107-6-9-2-4" | ||
4611 | transform="translate(5213.0126,16008.808)"> | ||
4612 | <rect | ||
4613 | id="rect112-7-1-3-5" | ||
4614 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4615 | rx="0" | ||
4616 | height="1370.8721" | ||
4617 | width="2809.1992" | ||
4618 | y="949.37109" | ||
4619 | x="2084.55" /> | ||
4620 | <rect | ||
4621 | id="rect112-3-5-2-7-0" | ||
4622 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4623 | rx="0" | ||
4624 | height="1294.8468" | ||
4625 | width="2809.1992" | ||
4626 | y="1025.3964" | ||
4627 | x="2084.55" /> | ||
4628 | </g> | ||
4629 | <text | ||
4630 | xml:space="preserve" | ||
4631 | x="9717.4141" | ||
4632 | y="18269.314" | ||
4633 | font-style="normal" | ||
4634 | font-weight="bold" | ||
4635 | font-size="192" | ||
4636 | id="text202-7-5-1-2-3-7-35-7-5-3" | ||
4637 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4638 | sodipodi:linespacing="125%"><tspan | ||
4639 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4640 | id="tspan3104-6-5-6-0-92-6-5">Leaf</tspan></text> | ||
4641 | </g> | ||
4642 | <g | ||
4643 | transform="translate(-7400.8907,60936.205)" | ||
4644 | id="g3153-28-0" | ||
4645 | style="fill:none;stroke-width:0.025in"> | ||
4646 | <g | ||
4647 | style="fill:none;stroke-width:0.025in" | ||
4648 | id="g3107-6-9-9-6" | ||
4649 | transform="translate(5213.0126,16008.808)"> | ||
4650 | <rect | ||
4651 | id="rect112-7-1-7-3-8" | ||
4652 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4653 | rx="0" | ||
4654 | height="1370.8721" | ||
4655 | width="2809.1992" | ||
4656 | y="949.37109" | ||
4657 | x="2084.55" /> | ||
4658 | <rect | ||
4659 | id="rect112-3-5-2-3-2" | ||
4660 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4661 | rx="0" | ||
4662 | height="1294.8468" | ||
4663 | width="2809.1992" | ||
4664 | y="1025.3964" | ||
4665 | x="2084.55" /> | ||
4666 | </g> | ||
4667 | <text | ||
4668 | xml:space="preserve" | ||
4669 | x="9717.4141" | ||
4670 | y="18269.314" | ||
4671 | font-style="normal" | ||
4672 | font-weight="bold" | ||
4673 | font-size="192" | ||
4674 | id="text202-7-5-1-2-3-7-35-7-6-0" | ||
4675 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4676 | sodipodi:linespacing="125%"><tspan | ||
4677 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4678 | id="tspan3104-6-5-6-0-1-6-2">Leaf</tspan></text> | ||
4679 | </g> | ||
4680 | <path | ||
4681 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4682 | d="m 4890.0661,74818.542 -582.9982,865.094" | ||
4683 | id="path3414-5" | ||
4684 | inkscape:connector-curvature="0" /> | ||
4685 | <path | ||
4686 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4687 | d="m 7698.8481,74818.804 582.998,865.094" | ||
4688 | id="path3414-9-5" | ||
4689 | inkscape:connector-curvature="0" /> | ||
4690 | <path | ||
4691 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4692 | d="m 2939.433,77031.719 -582.9982,865.094" | ||
4693 | id="path3414-8-4-6" | ||
4694 | inkscape:connector-curvature="0" /> | ||
4695 | <path | ||
4696 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4697 | d="m 9684.4834,77031.981 583.0036,865.094" | ||
4698 | id="path3414-9-4-7-0" | ||
4699 | inkscape:connector-curvature="0" /> | ||
4700 | <path | ||
4701 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4702 | d="m 4355.9293,77031.719 0,846.288" | ||
4703 | id="path3414-8-3-65" | ||
4704 | inkscape:connector-curvature="0" | ||
4705 | sodipodi:nodetypes="cc" /> | ||
4706 | <path | ||
4707 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4708 | d="m 8232.9046,77058.315 0,846.288" | ||
4709 | id="path3414-8-3-6-6-6" | ||
4710 | inkscape:connector-curvature="0" | ||
4711 | sodipodi:nodetypes="cc" /> | ||
4712 | <g | ||
4713 | transform="translate(-2218.9069,53239.905)" | ||
4714 | id="g3147-3-64" | ||
4715 | style="fill:none;stroke-width:0.025in"> | ||
4716 | <g | ||
4717 | style="fill:none;stroke-width:0.025in" | ||
4718 | id="g3107-6-6-62" | ||
4719 | transform="translate(3054.6101,13760.052)"> | ||
4720 | <rect | ||
4721 | id="rect112-7-0-8" | ||
4722 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4723 | rx="0" | ||
4724 | height="1370.8721" | ||
4725 | width="2809.1992" | ||
4726 | y="949.37109" | ||
4727 | x="2084.55" /> | ||
4728 | <rect | ||
4729 | id="rect112-3-5-6-96" | ||
4730 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4731 | rx="0" | ||
4732 | height="1294.8468" | ||
4733 | width="2809.1992" | ||
4734 | y="1025.3964" | ||
4735 | x="2084.55" /> | ||
4736 | </g> | ||
4737 | <text | ||
4738 | xml:space="preserve" | ||
4739 | x="5327.3057" | ||
4740 | y="15428.84" | ||
4741 | font-style="normal" | ||
4742 | font-weight="bold" | ||
4743 | font-size="192" | ||
4744 | id="text202-36" | ||
4745 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
4746 | </g> | ||
4747 | <g | ||
4748 | transform="translate(-728.08545,53203.538)" | ||
4749 | id="g3153-2-0" | ||
4750 | style="fill:none;stroke-width:0.025in"> | ||
4751 | <g | ||
4752 | style="fill:none;stroke-width:0.025in" | ||
4753 | id="g3107-6-9-6-7" | ||
4754 | transform="translate(5213.0126,16008.808)"> | ||
4755 | <rect | ||
4756 | id="rect112-7-1-1-01" | ||
4757 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4758 | rx="0" | ||
4759 | height="1370.8721" | ||
4760 | width="2809.1992" | ||
4761 | y="949.37109" | ||
4762 | x="2084.55" /> | ||
4763 | <rect | ||
4764 | id="rect112-3-5-2-8-0" | ||
4765 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4766 | rx="0" | ||
4767 | height="1294.8468" | ||
4768 | width="2809.1992" | ||
4769 | y="1025.3964" | ||
4770 | x="2084.55" /> | ||
4771 | </g> | ||
4772 | <text | ||
4773 | xml:space="preserve" | ||
4774 | x="9717.4141" | ||
4775 | y="18269.314" | ||
4776 | font-style="normal" | ||
4777 | font-weight="bold" | ||
4778 | font-size="192" | ||
4779 | id="text202-7-5-1-2-3-7-35-7-7-1" | ||
4780 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4781 | sodipodi:linespacing="125%"><tspan | ||
4782 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4783 | id="tspan3104-6-5-6-0-9-3">Leaf</tspan></text> | ||
4784 | </g> | ||
4785 | <g | ||
4786 | transform="translate(-4060.8278,53203.538)" | ||
4787 | id="g3153-20-7" | ||
4788 | style="fill:none;stroke-width:0.025in"> | ||
4789 | <g | ||
4790 | style="fill:none;stroke-width:0.025in" | ||
4791 | id="g3107-6-9-2-7" | ||
4792 | transform="translate(5213.0126,16008.808)"> | ||
4793 | <rect | ||
4794 | id="rect112-7-1-3-2" | ||
4795 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4796 | rx="0" | ||
4797 | height="1370.8721" | ||
4798 | width="2809.1992" | ||
4799 | y="949.37109" | ||
4800 | x="2084.55" /> | ||
4801 | <rect | ||
4802 | id="rect112-3-5-2-7-6" | ||
4803 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4804 | rx="0" | ||
4805 | height="1294.8468" | ||
4806 | width="2809.1992" | ||
4807 | y="1025.3964" | ||
4808 | x="2084.55" /> | ||
4809 | </g> | ||
4810 | <text | ||
4811 | xml:space="preserve" | ||
4812 | x="9717.4141" | ||
4813 | y="18269.314" | ||
4814 | font-style="normal" | ||
4815 | font-weight="bold" | ||
4816 | font-size="192" | ||
4817 | id="text202-7-5-1-2-3-7-35-7-5-4" | ||
4818 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4819 | sodipodi:linespacing="125%"><tspan | ||
4820 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4821 | id="tspan3104-6-5-6-0-92-5">Leaf</tspan></text> | ||
4822 | <text | ||
4823 | xml:space="preserve" | ||
4824 | x="7486.4907" | ||
4825 | y="17670.119" | ||
4826 | font-style="normal" | ||
4827 | font-weight="bold" | ||
4828 | font-size="192" | ||
4829 | id="text202-6-2" | ||
4830 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
4831 | </g> | ||
4832 | <g | ||
4833 | transform="translate(-7393.5687,53203.538)" | ||
4834 | id="g3153-28-02" | ||
4835 | style="fill:none;stroke-width:0.025in"> | ||
4836 | <g | ||
4837 | style="fill:none;stroke-width:0.025in" | ||
4838 | id="g3107-6-9-9-9" | ||
4839 | transform="translate(5213.0126,16008.808)"> | ||
4840 | <rect | ||
4841 | id="rect112-7-1-7-0" | ||
4842 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4843 | rx="0" | ||
4844 | height="1370.8721" | ||
4845 | width="2809.1992" | ||
4846 | y="949.37109" | ||
4847 | x="2084.55" /> | ||
4848 | <rect | ||
4849 | id="rect112-3-5-2-3-9" | ||
4850 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
4851 | rx="0" | ||
4852 | height="1294.8468" | ||
4853 | width="2809.1992" | ||
4854 | y="1025.3964" | ||
4855 | x="2084.55" /> | ||
4856 | </g> | ||
4857 | <text | ||
4858 | xml:space="preserve" | ||
4859 | x="9717.4141" | ||
4860 | y="18269.314" | ||
4861 | font-style="normal" | ||
4862 | font-weight="bold" | ||
4863 | font-size="192" | ||
4864 | id="text202-7-5-1-2-3-7-35-7-6-94" | ||
4865 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4866 | sodipodi:linespacing="125%"><tspan | ||
4867 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
4868 | id="tspan3104-6-5-6-0-1-5">Leaf</tspan></text> | ||
4869 | <text | ||
4870 | xml:space="preserve" | ||
4871 | x="7474.1382" | ||
4872 | y="17688.926" | ||
4873 | font-style="normal" | ||
4874 | font-weight="bold" | ||
4875 | font-size="192" | ||
4876 | id="text202-5-1" | ||
4877 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
4878 | </g> | ||
4879 | <path | ||
4880 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4881 | d="m 4897.3878,67085.876 -582.9982,865.094" | ||
4882 | id="path3414-03" | ||
4883 | inkscape:connector-curvature="0" /> | ||
4884 | <path | ||
4885 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4886 | d="m 7706.1695,67086.138 582.9982,865.094" | ||
4887 | id="path3414-9-78" | ||
4888 | inkscape:connector-curvature="0" /> | ||
4889 | <path | ||
4890 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4891 | d="m 2946.7546,69299.053 -582.9981,865.094" | ||
4892 | id="path3414-8-8" | ||
4893 | inkscape:connector-curvature="0" /> | ||
4894 | <path | ||
4895 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4896 | d="m 9691.8054,69299.315 583.0036,865.094" | ||
4897 | id="path3414-9-4-6" | ||
4898 | inkscape:connector-curvature="0" /> | ||
4899 | <path | ||
4900 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4901 | d="m 4363.251,69299.053 0,846.288" | ||
4902 | id="path3414-8-3-04" | ||
4903 | inkscape:connector-curvature="0" | ||
4904 | sodipodi:nodetypes="cc" /> | ||
4905 | <path | ||
4906 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
4907 | d="m 8240.2262,69325.649 0,846.288" | ||
4908 | id="path3414-8-3-6-67" | ||
4909 | inkscape:connector-curvature="0" | ||
4910 | sodipodi:nodetypes="cc" /> | ||
4911 | <text | ||
4912 | xml:space="preserve" | ||
4913 | x="6742.6001" | ||
4914 | y="70882.617" | ||
4915 | font-style="normal" | ||
4916 | font-weight="bold" | ||
4917 | font-size="192" | ||
4918 | id="text202-2" | ||
4919 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->completed = ->gpnum</text> | ||
4920 | <g | ||
4921 | style="fill:none;stroke-width:0.025in" | ||
4922 | id="g4504-3-9-6" | ||
4923 | transform="translate(4290.2512,63653.93)"> | ||
4924 | <path | ||
4925 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
4926 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
4927 | sodipodi:ry="39.550262" | ||
4928 | sodipodi:rx="65.917107" | ||
4929 | sodipodi:cy="345.54001" | ||
4930 | sodipodi:cx="319.379" | ||
4931 | id="path3084-6-1-09" | ||
4932 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
4933 | sodipodi:type="arc" /> | ||
4934 | <text | ||
4935 | sodipodi:linespacing="125%" | ||
4936 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
4937 | id="text202-7-5-1-2-7-2-7" | ||
4938 | font-size="192" | ||
4939 | font-weight="bold" | ||
4940 | font-style="normal" | ||
4941 | y="16888.277" | ||
4942 | x="4344.877" | ||
4943 | xml:space="preserve"><tspan | ||
4944 | id="tspan3104-5-7-5" | ||
4945 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Start of</tspan></text> | ||
4946 | <text | ||
4947 | sodipodi:linespacing="125%" | ||
4948 | id="text3110-3-0-9" | ||
4949 | y="17119.1" | ||
4950 | x="4578.7886" | ||
4951 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4952 | xml:space="preserve"><tspan | ||
4953 | y="17119.1" | ||
4954 | x="4578.7886" | ||
4955 | id="tspan3112-5-9-7" | ||
4956 | sodipodi:role="line">Next Grace</tspan></text> | ||
4957 | <text | ||
4958 | sodipodi:linespacing="125%" | ||
4959 | id="text3114-6-3-85" | ||
4960 | y="17350.271" | ||
4961 | x="4581.7886" | ||
4962 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
4963 | xml:space="preserve"><tspan | ||
4964 | y="17350.271" | ||
4965 | x="4581.7886" | ||
4966 | id="tspan3116-2-6-3" | ||
4967 | sodipodi:role="line">Period</tspan></text> | ||
4968 | </g> | ||
4969 | <path | ||
4970 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
4971 | d="m 4406.3256,79248.348 -0.01,5813.579" | ||
4972 | id="path3134-9-0-3-37" | ||
4973 | inkscape:connector-curvature="0" | ||
4974 | sodipodi:nodetypes="cc" /> | ||
4975 | <path | ||
4976 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
4977 | d="m 4406.3181,82402.301 -2393.663,0.512 0,1196.832 2393.663,-0.512" | ||
4978 | id="path3134-9-0-8" | ||
4979 | inkscape:connector-curvature="0" | ||
4980 | sodipodi:nodetypes="cccc" /> | ||
4981 | <path | ||
4982 | style="fill:none;stroke:#969696;stroke-width:53.19251251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
4983 | d="m 4406.3181,82402.301 2393.6631,0.512 0,1196.832 -2393.6631,-0.512" | ||
4984 | id="path3134-9-0-7-7" | ||
4985 | inkscape:connector-curvature="0" | ||
4986 | sodipodi:nodetypes="cccc" /> | ||
4987 | <rect | ||
4988 | x="578.16779" | ||
4989 | y="82839.773" | ||
4990 | width="2844.0972" | ||
4991 | height="360.77411" | ||
4992 | rx="0" | ||
4993 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057845, 60.00115702;stroke-dashoffset:0" | ||
4994 | id="rect118-3-4" | ||
4995 | ry="0" /> | ||
4996 | <text | ||
4997 | xml:space="preserve" | ||
4998 | x="806.7832" | ||
4999 | y="83088.211" | ||
5000 | font-style="normal" | ||
5001 | font-weight="bold" | ||
5002 | font-size="192" | ||
5003 | id="text202-7-5-19" | ||
5004 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_check_callbacks()</text> | ||
5005 | <rect | ||
5006 | x="5314.2671" | ||
5007 | y="82817.688" | ||
5008 | width="2975.115" | ||
5009 | height="382.86298" | ||
5010 | rx="0" | ||
5011 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057858, 60.00115716;stroke-dashoffset:0" | ||
5012 | id="rect118-36-0" | ||
5013 | ry="0" /> | ||
5014 | <text | ||
5015 | xml:space="preserve" | ||
5016 | x="5409.8989" | ||
5017 | y="83063.711" | ||
5018 | font-style="normal" | ||
5019 | font-weight="bold" | ||
5020 | font-size="192" | ||
5021 | id="text202-7-9-6-9" | ||
5022 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_cleanup_after_idle()</text> | ||
5023 | <text | ||
5024 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
5025 | id="text202-88" | ||
5026 | font-size="192" | ||
5027 | font-weight="bold" | ||
5028 | font-style="normal" | ||
5029 | y="81443.047" | ||
5030 | x="3264.7983" | ||
5031 | xml:space="preserve">rcu_advance_cbs()</text> | ||
5032 | <rect | ||
5033 | id="rect112-58" | ||
5034 | style="fill:none;stroke:#000000;stroke-width:29.99999809;stroke-linecap:butt;stroke-linejoin:miter" | ||
5035 | rx="0" | ||
5036 | height="1370.8721" | ||
5037 | width="2809.1992" | ||
5038 | y="80561.273" | ||
5039 | x="2991.7173" /> | ||
5040 | <rect | ||
5041 | id="rect112-3-4" | ||
5042 | style="fill:none;stroke:#000000;stroke-width:29.99999809;stroke-linecap:butt;stroke-linejoin:miter" | ||
5043 | rx="0" | ||
5044 | height="1294.8468" | ||
5045 | width="2809.1992" | ||
5046 | y="80637.297" | ||
5047 | x="2991.7173" /> | ||
5048 | <text | ||
5049 | sodipodi:linespacing="125%" | ||
5050 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
5051 | id="text202-7-5-1-2-3-7-37" | ||
5052 | font-size="192" | ||
5053 | font-weight="bold" | ||
5054 | font-style="normal" | ||
5055 | y="81872.406" | ||
5056 | x="5411.5601" | ||
5057 | xml:space="preserve"><tspan | ||
5058 | id="tspan3104-6-5-13" | ||
5059 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Leaf</tspan></text> | ||
5060 | <text | ||
5061 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
5062 | id="text202-3-8" | ||
5063 | font-size="192" | ||
5064 | font-weight="bold" | ||
5065 | font-style="normal" | ||
5066 | y="81232.938" | ||
5067 | x="3264.7983" | ||
5068 | xml:space="preserve">__note_gp_changes()</text> | ||
5069 | <g | ||
5070 | style="fill:none;stroke-width:0.025in" | ||
5071 | id="g3049" | ||
5072 | transform="translate(-1728.7601,83820.41)"> | ||
5073 | <path | ||
5074 | transform="matrix(13.298129,0,0,13.298129,1872.6808,-2726.4833)" | ||
5075 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
5076 | sodipodi:ry="39.550262" | ||
5077 | sodipodi:rx="65.917107" | ||
5078 | sodipodi:cy="345.54001" | ||
5079 | sodipodi:cx="319.379" | ||
5080 | id="path3084-3-0" | ||
5081 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
5082 | sodipodi:type="arc" /> | ||
5083 | <text | ||
5084 | sodipodi:linespacing="125%" | ||
5085 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
5086 | id="text202-7-5-1-2-6-9" | ||
5087 | font-size="192" | ||
5088 | font-weight="bold" | ||
5089 | font-style="normal" | ||
5090 | y="1785.2073" | ||
5091 | x="5717.4517" | ||
5092 | xml:space="preserve"><tspan | ||
5093 | id="tspan3104-7-7" | ||
5094 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Phase Two</tspan></text> | ||
5095 | <text | ||
5096 | sodipodi:linespacing="125%" | ||
5097 | id="text3110-5-9" | ||
5098 | y="2005.6624" | ||
5099 | x="6119.668" | ||
5100 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
5101 | xml:space="preserve"><tspan | ||
5102 | y="2005.6624" | ||
5103 | x="6119.668" | ||
5104 | id="tspan3112-3-9" | ||
5105 | sodipodi:role="line">of Update</tspan></text> | ||
5106 | </g> | ||
5107 | <rect | ||
5108 | x="3342.4805" | ||
5109 | y="83998.438" | ||
5110 | width="1994.7195" | ||
5111 | height="664.90662" | ||
5112 | rx="0" | ||
5113 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057818, 60.00115636;stroke-dashoffset:0" | ||
5114 | id="rect118-36-3" | ||
5115 | ry="0" /> | ||
5116 | <text | ||
5117 | xml:space="preserve" | ||
5118 | x="3608.4419" | ||
5119 | y="84264.398" | ||
5120 | font-style="normal" | ||
5121 | font-weight="bold" | ||
5122 | font-size="192" | ||
5123 | id="text202-7-9-6-6" | ||
5124 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">RCU_SOFTIRQ</text> | ||
5125 | <text | ||
5126 | xml:space="preserve" | ||
5127 | x="3608.4419" | ||
5128 | y="84530.367" | ||
5129 | font-style="normal" | ||
5130 | font-weight="bold" | ||
5131 | font-size="192" | ||
5132 | id="text202-7-9-6-6-7" | ||
5133 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_do_batch()</text> | ||
5134 | </g> | ||
5135 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-hotplug.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-hotplug.svg new file mode 100644 index 000000000000..2c9310ba29ba --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-hotplug.svg | |||
@@ -0,0 +1,775 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="613.22784" | ||
17 | height="707.07056" | ||
18 | viewBox="-44 -44 8154.7829 9398.3736" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-hotplug.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | <marker | ||
178 | inkscape:stockid="Arrow2Lend" | ||
179 | orient="auto" | ||
180 | refY="0" | ||
181 | refX="0" | ||
182 | id="Arrow2Lend-3" | ||
183 | style="overflow:visible"> | ||
184 | <path | ||
185 | id="path3946-1" | ||
186 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
187 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
188 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
189 | inkscape:connector-curvature="0" /> | ||
190 | </marker> | ||
191 | <marker | ||
192 | inkscape:stockid="Arrow2Lend" | ||
193 | orient="auto" | ||
194 | refY="0" | ||
195 | refX="0" | ||
196 | id="Arrow2Lend-4" | ||
197 | style="overflow:visible"> | ||
198 | <path | ||
199 | id="path3946-7" | ||
200 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
201 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
202 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
203 | inkscape:connector-curvature="0" /> | ||
204 | </marker> | ||
205 | <marker | ||
206 | inkscape:stockid="Arrow2Lend" | ||
207 | orient="auto" | ||
208 | refY="0" | ||
209 | refX="0" | ||
210 | id="marker4880" | ||
211 | style="overflow:visible"> | ||
212 | <path | ||
213 | id="path4882" | ||
214 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
215 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
216 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
217 | inkscape:connector-curvature="0" /> | ||
218 | </marker> | ||
219 | <marker | ||
220 | inkscape:stockid="Arrow2Lend" | ||
221 | orient="auto" | ||
222 | refY="0" | ||
223 | refX="0" | ||
224 | id="Arrow2Lend-5" | ||
225 | style="overflow:visible"> | ||
226 | <path | ||
227 | id="path3946-0" | ||
228 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
229 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
230 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
231 | inkscape:connector-curvature="0" /> | ||
232 | </marker> | ||
233 | <marker | ||
234 | inkscape:stockid="Arrow2Lend" | ||
235 | orient="auto" | ||
236 | refY="0" | ||
237 | refX="0" | ||
238 | id="Arrow2Lend-6" | ||
239 | style="overflow:visible"> | ||
240 | <path | ||
241 | id="path3946-10" | ||
242 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
243 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
244 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
245 | inkscape:connector-curvature="0" /> | ||
246 | </marker> | ||
247 | <marker | ||
248 | inkscape:stockid="Arrow1Send" | ||
249 | orient="auto" | ||
250 | refY="0" | ||
251 | refX="0" | ||
252 | id="Arrow1Send-36" | ||
253 | style="overflow:visible"> | ||
254 | <path | ||
255 | id="path3940-0" | ||
256 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
257 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
258 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
259 | inkscape:connector-curvature="0" /> | ||
260 | </marker> | ||
261 | <marker | ||
262 | inkscape:stockid="Arrow1Send" | ||
263 | orient="auto" | ||
264 | refY="0" | ||
265 | refX="0" | ||
266 | id="Arrow1Send-6" | ||
267 | style="overflow:visible"> | ||
268 | <path | ||
269 | id="path3940-26" | ||
270 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
271 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
272 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
273 | inkscape:connector-curvature="0" /> | ||
274 | </marker> | ||
275 | <marker | ||
276 | inkscape:stockid="Arrow1Send" | ||
277 | orient="auto" | ||
278 | refY="0" | ||
279 | refX="0" | ||
280 | id="Arrow1Send-8" | ||
281 | style="overflow:visible"> | ||
282 | <path | ||
283 | id="path3940-7" | ||
284 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
285 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
286 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
287 | inkscape:connector-curvature="0" /> | ||
288 | </marker> | ||
289 | <marker | ||
290 | inkscape:stockid="Arrow1Send" | ||
291 | orient="auto" | ||
292 | refY="0" | ||
293 | refX="0" | ||
294 | id="Arrow1Send-367" | ||
295 | style="overflow:visible"> | ||
296 | <path | ||
297 | id="path3940-5" | ||
298 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
299 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
300 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
301 | inkscape:connector-curvature="0" /> | ||
302 | </marker> | ||
303 | <marker | ||
304 | inkscape:stockid="Arrow2Lend" | ||
305 | orient="auto" | ||
306 | refY="0" | ||
307 | refX="0" | ||
308 | id="Arrow2Lend-56" | ||
309 | style="overflow:visible"> | ||
310 | <path | ||
311 | id="path3946-2" | ||
312 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
313 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
314 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
315 | inkscape:connector-curvature="0" /> | ||
316 | </marker> | ||
317 | <marker | ||
318 | inkscape:stockid="Arrow2Lend" | ||
319 | orient="auto" | ||
320 | refY="0" | ||
321 | refX="0" | ||
322 | id="marker3081" | ||
323 | style="overflow:visible"> | ||
324 | <path | ||
325 | id="path3083" | ||
326 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
327 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
328 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
329 | inkscape:connector-curvature="0" /> | ||
330 | </marker> | ||
331 | <marker | ||
332 | inkscape:stockid="Arrow2Lend" | ||
333 | orient="auto" | ||
334 | refY="0" | ||
335 | refX="0" | ||
336 | id="marker3085" | ||
337 | style="overflow:visible"> | ||
338 | <path | ||
339 | id="path3087" | ||
340 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
341 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
342 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
343 | inkscape:connector-curvature="0" /> | ||
344 | </marker> | ||
345 | <marker | ||
346 | inkscape:stockid="Arrow2Lend" | ||
347 | orient="auto" | ||
348 | refY="0" | ||
349 | refX="0" | ||
350 | id="marker3089" | ||
351 | style="overflow:visible"> | ||
352 | <path | ||
353 | id="path3091" | ||
354 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
355 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
356 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
357 | inkscape:connector-curvature="0" /> | ||
358 | </marker> | ||
359 | <marker | ||
360 | inkscape:stockid="Arrow2Lend" | ||
361 | orient="auto" | ||
362 | refY="0" | ||
363 | refX="0" | ||
364 | id="marker3093" | ||
365 | style="overflow:visible"> | ||
366 | <path | ||
367 | id="path3095" | ||
368 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
369 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
370 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
371 | inkscape:connector-curvature="0" /> | ||
372 | </marker> | ||
373 | <marker | ||
374 | inkscape:stockid="Arrow2Lend" | ||
375 | orient="auto" | ||
376 | refY="0" | ||
377 | refX="0" | ||
378 | id="marker3097" | ||
379 | style="overflow:visible"> | ||
380 | <path | ||
381 | id="path3099" | ||
382 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
383 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
384 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
385 | inkscape:connector-curvature="0" /> | ||
386 | </marker> | ||
387 | <marker | ||
388 | inkscape:stockid="Arrow1Send" | ||
389 | orient="auto" | ||
390 | refY="0" | ||
391 | refX="0" | ||
392 | id="Arrow1Send-9" | ||
393 | style="overflow:visible"> | ||
394 | <path | ||
395 | id="path3940-1" | ||
396 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
397 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
398 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
399 | inkscape:connector-curvature="0" /> | ||
400 | </marker> | ||
401 | <marker | ||
402 | inkscape:stockid="Arrow1Send" | ||
403 | orient="auto" | ||
404 | refY="0" | ||
405 | refX="0" | ||
406 | id="Arrow1Send-3675" | ||
407 | style="overflow:visible"> | ||
408 | <path | ||
409 | id="path3940-3" | ||
410 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
411 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
412 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
413 | inkscape:connector-curvature="0" /> | ||
414 | </marker> | ||
415 | </defs> | ||
416 | <sodipodi:namedview | ||
417 | pagecolor="#ffffff" | ||
418 | bordercolor="#666666" | ||
419 | borderopacity="1" | ||
420 | objecttolerance="10" | ||
421 | gridtolerance="10" | ||
422 | guidetolerance="10" | ||
423 | inkscape:pageopacity="0" | ||
424 | inkscape:pageshadow="2" | ||
425 | inkscape:window-width="1087" | ||
426 | inkscape:window-height="1148" | ||
427 | id="namedview208" | ||
428 | showgrid="true" | ||
429 | inkscape:zoom="1.4142136" | ||
430 | inkscape:cx="325.41695" | ||
431 | inkscape:cy="364.94502" | ||
432 | inkscape:window-x="833" | ||
433 | inkscape:window-y="24" | ||
434 | inkscape:window-maximized="0" | ||
435 | inkscape:current-layer="svg2" | ||
436 | fit-margin-top="5" | ||
437 | fit-margin-right="5" | ||
438 | fit-margin-left="5" | ||
439 | fit-margin-bottom="5" | ||
440 | inkscape:snap-global="false"> | ||
441 | <inkscape:grid | ||
442 | type="xygrid" | ||
443 | id="grid3154" | ||
444 | empspacing="5" | ||
445 | visible="true" | ||
446 | enabled="true" | ||
447 | snapvisiblegridlinesonly="true" | ||
448 | originx="65.610033px" | ||
449 | originy="-659.12429px" /> | ||
450 | </sodipodi:namedview> | ||
451 | <path | ||
452 | sodipodi:nodetypes="cc" | ||
453 | inkscape:connector-curvature="0" | ||
454 | id="path3134-9-0-3-1-3-5" | ||
455 | d="m 5749.1555,47.151064 2.828,9167.338436" | ||
456 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
457 | <path | ||
458 | sodipodi:nodetypes="ccc" | ||
459 | inkscape:connector-curvature="0" | ||
460 | id="path3134-9-0-3-1" | ||
461 | d="m 5746.8844,5080.2018 -4107.7813,-0.8434 20.2152,2632.0511" | ||
462 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
463 | <path | ||
464 | sodipodi:nodetypes="ccc" | ||
465 | inkscape:connector-curvature="0" | ||
466 | id="path3134-9-0-3-1-3" | ||
467 | d="m 1629.8595,1633.6804 12.2312,2669.7294 4055.5945,7.7159" | ||
468 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
469 | <g | ||
470 | id="g3115" | ||
471 | transform="translate(1657.6576,12154.29)"> | ||
472 | <rect | ||
473 | ry="0" | ||
474 | id="rect118-3" | ||
475 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057923, 60.00115859;stroke-dashoffset:0" | ||
476 | rx="0" | ||
477 | height="2349.7295" | ||
478 | width="3992.2642" | ||
479 | y="-8909.5498" | ||
480 | x="2379.3704" /> | ||
481 | <g | ||
482 | transform="translate(582.16224,-9085.2783)" | ||
483 | id="g3107-7" | ||
484 | style="fill:none;stroke-width:0.025in"> | ||
485 | <rect | ||
486 | x="2084.55" | ||
487 | y="949.37109" | ||
488 | width="2809.1992" | ||
489 | height="1370.8721" | ||
490 | rx="0" | ||
491 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
492 | id="rect112-5" /> | ||
493 | <rect | ||
494 | x="2084.55" | ||
495 | y="1025.3964" | ||
496 | width="2809.1992" | ||
497 | height="1294.8468" | ||
498 | rx="0" | ||
499 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
500 | id="rect112-3-3" /> | ||
501 | </g> | ||
502 | <text | ||
503 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
504 | id="text202-6-6-2" | ||
505 | font-size="192" | ||
506 | font-weight="bold" | ||
507 | font-style="normal" | ||
508 | y="-7356.375" | ||
509 | x="2774.7393" | ||
510 | xml:space="preserve">->qsmask &= ~->grpmask</text> | ||
511 | <text | ||
512 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
513 | id="text202-7-2-7-7" | ||
514 | font-size="192" | ||
515 | font-weight="bold" | ||
516 | font-style="normal" | ||
517 | y="-8652.5312" | ||
518 | x="2466.7822" | ||
519 | xml:space="preserve">dyntick_save_progress_counter()</text> | ||
520 | <text | ||
521 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
522 | id="text202-7-2-7-2-0" | ||
523 | font-size="192" | ||
524 | font-weight="bold" | ||
525 | font-style="normal" | ||
526 | y="-8368.1475" | ||
527 | x="2463.3262" | ||
528 | xml:space="preserve">rcu_implicit_dynticks_qs()</text> | ||
529 | <text | ||
530 | sodipodi:linespacing="125%" | ||
531 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
532 | id="text202-7-5-1-2-3" | ||
533 | font-size="192" | ||
534 | font-weight="bold" | ||
535 | font-style="normal" | ||
536 | y="-6817.3472" | ||
537 | x="5103.9922" | ||
538 | xml:space="preserve"><tspan | ||
539 | id="tspan3104-6" | ||
540 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Leaf</tspan></text> | ||
541 | </g> | ||
542 | <g | ||
543 | id="g4504" | ||
544 | transform="translate(-2953.0872,-15955.072)"> | ||
545 | <path | ||
546 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
547 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
548 | sodipodi:ry="39.550262" | ||
549 | sodipodi:rx="65.917107" | ||
550 | sodipodi:cy="345.54001" | ||
551 | sodipodi:cx="319.379" | ||
552 | id="path3084" | ||
553 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
554 | sodipodi:type="arc" /> | ||
555 | <text | ||
556 | sodipodi:linespacing="125%" | ||
557 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
558 | id="text202-7-5-1-2" | ||
559 | font-size="192" | ||
560 | font-weight="bold" | ||
561 | font-style="normal" | ||
562 | y="16835.086" | ||
563 | x="4409.043" | ||
564 | xml:space="preserve"><tspan | ||
565 | id="tspan3104" | ||
566 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
567 | <text | ||
568 | sodipodi:linespacing="125%" | ||
569 | id="text3110" | ||
570 | y="17055.541" | ||
571 | x="4579.373" | ||
572 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
573 | xml:space="preserve"><tspan | ||
574 | y="17055.541" | ||
575 | x="4579.373" | ||
576 | id="tspan3112" | ||
577 | sodipodi:role="line">read-side</tspan></text> | ||
578 | <text | ||
579 | sodipodi:linespacing="125%" | ||
580 | id="text3114" | ||
581 | y="17297.08" | ||
582 | x="4584.8276" | ||
583 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
584 | xml:space="preserve"><tspan | ||
585 | y="17297.08" | ||
586 | x="4584.8276" | ||
587 | id="tspan3116" | ||
588 | sodipodi:role="line">critical section</tspan></text> | ||
589 | </g> | ||
590 | <g | ||
591 | id="g3148-9-9" | ||
592 | transform="translate(-3554.8919,7020.44)"> | ||
593 | <rect | ||
594 | x="3592.3828" | ||
595 | y="-4981.6865" | ||
596 | width="3728.9751" | ||
597 | height="2265.0989" | ||
598 | rx="0" | ||
599 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
600 | id="rect118-3-5-1-3" | ||
601 | ry="0" /> | ||
602 | <text | ||
603 | xml:space="preserve" | ||
604 | x="3745.7725" | ||
605 | y="-4684.6201" | ||
606 | font-style="normal" | ||
607 | font-weight="bold" | ||
608 | font-size="192" | ||
609 | id="text202-7-5-3-27-6" | ||
610 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_report_dead()</text> | ||
611 | <text | ||
612 | xml:space="preserve" | ||
613 | x="3745.7725" | ||
614 | y="-4431.7573" | ||
615 | font-style="normal" | ||
616 | font-weight="bold" | ||
617 | font-size="192" | ||
618 | id="text202-7-5-3-27-0-0" | ||
619 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_cleanup_dying_idle_cpu()</text> | ||
620 | <g | ||
621 | transform="translate(1783.3183,-5255.3491)" | ||
622 | id="g3107-7-5" | ||
623 | style="fill:none;stroke-width:0.025in"> | ||
624 | <rect | ||
625 | x="2084.55" | ||
626 | y="949.37109" | ||
627 | width="2809.1992" | ||
628 | height="1370.8721" | ||
629 | rx="0" | ||
630 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
631 | id="rect112-5-3" /> | ||
632 | <rect | ||
633 | x="2084.55" | ||
634 | y="1025.3964" | ||
635 | width="2809.1992" | ||
636 | height="1294.8468" | ||
637 | rx="0" | ||
638 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
639 | id="rect112-3-3-5" /> | ||
640 | </g> | ||
641 | <text | ||
642 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
643 | id="text202-6-6-2-6" | ||
644 | font-size="192" | ||
645 | font-weight="bold" | ||
646 | font-style="normal" | ||
647 | y="-3526.4448" | ||
648 | x="4241.8574" | ||
649 | xml:space="preserve">->qsmaskinitnext</text> | ||
650 | <text | ||
651 | sodipodi:linespacing="125%" | ||
652 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
653 | id="text202-7-5-1-2-3-2" | ||
654 | font-size="192" | ||
655 | font-weight="bold" | ||
656 | font-style="normal" | ||
657 | y="-2987.4167" | ||
658 | x="6305.1484" | ||
659 | xml:space="preserve"><tspan | ||
660 | id="tspan3104-6-9" | ||
661 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Leaf</tspan></text> | ||
662 | </g> | ||
663 | <g | ||
664 | id="g4504-7" | ||
665 | transform="translate(-2934.2808,-8785.3871)"> | ||
666 | <path | ||
667 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
668 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
669 | sodipodi:ry="39.550262" | ||
670 | sodipodi:rx="65.917107" | ||
671 | sodipodi:cy="345.54001" | ||
672 | sodipodi:cx="319.379" | ||
673 | id="path3084-9" | ||
674 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
675 | sodipodi:type="arc" /> | ||
676 | <text | ||
677 | sodipodi:linespacing="125%" | ||
678 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
679 | id="text202-7-5-1-2-2" | ||
680 | font-size="192" | ||
681 | font-weight="bold" | ||
682 | font-style="normal" | ||
683 | y="16835.086" | ||
684 | x="4409.043" | ||
685 | xml:space="preserve"><tspan | ||
686 | id="tspan3104-0" | ||
687 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
688 | <text | ||
689 | sodipodi:linespacing="125%" | ||
690 | id="text3110-2" | ||
691 | y="17055.541" | ||
692 | x="4579.373" | ||
693 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
694 | xml:space="preserve"><tspan | ||
695 | y="17055.541" | ||
696 | x="4579.373" | ||
697 | id="tspan3112-3" | ||
698 | sodipodi:role="line">read-side</tspan></text> | ||
699 | <text | ||
700 | sodipodi:linespacing="125%" | ||
701 | id="text3114-7" | ||
702 | y="17297.08" | ||
703 | x="4584.8276" | ||
704 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
705 | xml:space="preserve"><tspan | ||
706 | y="17297.08" | ||
707 | x="4584.8276" | ||
708 | id="tspan3116-5" | ||
709 | sodipodi:role="line">critical section</tspan></text> | ||
710 | </g> | ||
711 | <g | ||
712 | id="g3206" | ||
713 | transform="translate(3999.537,1706.6099)"> | ||
714 | <rect | ||
715 | ry="0" | ||
716 | id="rect118-3-5-1-3-1" | ||
717 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00058007, 60.00116001;stroke-dashoffset:0" | ||
718 | rx="0" | ||
719 | height="2265.0989" | ||
720 | width="3728.9751" | ||
721 | y="3382.2036" | ||
722 | x="-3958.3845" /> | ||
723 | <text | ||
724 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
725 | id="text202-7-5-3-27-6-2" | ||
726 | font-size="192" | ||
727 | font-weight="bold" | ||
728 | font-style="normal" | ||
729 | y="3679.27" | ||
730 | x="-3804.9949" | ||
731 | xml:space="preserve">rcu_cpu_starting()</text> | ||
732 | <g | ||
733 | style="fill:none;stroke-width:0.025in" | ||
734 | id="g3107-7-5-0" | ||
735 | transform="translate(-5767.4491,3108.5424)"> | ||
736 | <rect | ||
737 | id="rect112-5-3-9" | ||
738 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
739 | rx="0" | ||
740 | height="1370.8721" | ||
741 | width="2809.1992" | ||
742 | y="949.37109" | ||
743 | x="2084.55" /> | ||
744 | <rect | ||
745 | id="rect112-3-3-5-3" | ||
746 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
747 | rx="0" | ||
748 | height="1294.8468" | ||
749 | width="2809.1992" | ||
750 | y="1025.3964" | ||
751 | x="2084.55" /> | ||
752 | </g> | ||
753 | <text | ||
754 | xml:space="preserve" | ||
755 | x="-3308.9099" | ||
756 | y="4837.4453" | ||
757 | font-style="normal" | ||
758 | font-weight="bold" | ||
759 | font-size="192" | ||
760 | id="text202-6-6-2-6-6" | ||
761 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmaskinitnext</text> | ||
762 | <text | ||
763 | xml:space="preserve" | ||
764 | x="-1245.6189" | ||
765 | y="5376.4731" | ||
766 | font-style="normal" | ||
767 | font-weight="bold" | ||
768 | font-size="192" | ||
769 | id="text202-7-5-1-2-3-2-0" | ||
770 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
771 | sodipodi:linespacing="125%"><tspan | ||
772 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
773 | id="tspan3104-6-9-6">Leaf</tspan></text> | ||
774 | </g> | ||
775 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-qs.svg b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-qs.svg new file mode 100644 index 000000000000..de3992f4cbe1 --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-qs.svg | |||
@@ -0,0 +1,1095 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="1037.9601" | ||
17 | height="1373.2583" | ||
18 | viewBox="-44 -44 13802.927 18253.333" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="TreeRCU-qs.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Send" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Send" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3940" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | <marker | ||
52 | inkscape:stockid="TriangleOutS" | ||
53 | orient="auto" | ||
54 | refY="0" | ||
55 | refX="0" | ||
56 | id="TriangleOutS" | ||
57 | style="overflow:visible"> | ||
58 | <path | ||
59 | id="path4073" | ||
60 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
61 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
62 | transform="scale(0.2,0.2)" | ||
63 | inkscape:connector-curvature="0" /> | ||
64 | </marker> | ||
65 | <marker | ||
66 | inkscape:stockid="TriangleOutM" | ||
67 | orient="auto" | ||
68 | refY="0" | ||
69 | refX="0" | ||
70 | id="TriangleOutM" | ||
71 | style="overflow:visible"> | ||
72 | <path | ||
73 | id="path4070" | ||
74 | d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" | ||
75 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
76 | transform="scale(0.4,0.4)" | ||
77 | inkscape:connector-curvature="0" /> | ||
78 | </marker> | ||
79 | <marker | ||
80 | inkscape:stockid="Arrow2Mend" | ||
81 | orient="auto" | ||
82 | refY="0" | ||
83 | refX="0" | ||
84 | id="Arrow2Mend" | ||
85 | style="overflow:visible"> | ||
86 | <path | ||
87 | id="path3952" | ||
88 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
89 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
90 | transform="scale(-0.6,-0.6)" | ||
91 | inkscape:connector-curvature="0" /> | ||
92 | </marker> | ||
93 | <marker | ||
94 | inkscape:stockid="Arrow2Lend" | ||
95 | orient="auto" | ||
96 | refY="0" | ||
97 | refX="0" | ||
98 | id="Arrow2Lend" | ||
99 | style="overflow:visible"> | ||
100 | <path | ||
101 | id="path3946" | ||
102 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
103 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
104 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
105 | inkscape:connector-curvature="0" /> | ||
106 | </marker> | ||
107 | <marker | ||
108 | inkscape:stockid="Arrow1Mend" | ||
109 | orient="auto" | ||
110 | refY="0" | ||
111 | refX="0" | ||
112 | id="Arrow1Mend" | ||
113 | style="overflow:visible"> | ||
114 | <path | ||
115 | id="path3970" | ||
116 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
117 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
118 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
119 | inkscape:connector-curvature="0" /> | ||
120 | </marker> | ||
121 | <marker | ||
122 | inkscape:stockid="Arrow2Mend" | ||
123 | orient="auto" | ||
124 | refY="0" | ||
125 | refX="0" | ||
126 | id="Arrow2Mend-7" | ||
127 | style="overflow:visible"> | ||
128 | <path | ||
129 | inkscape:connector-curvature="0" | ||
130 | id="path3952-0" | ||
131 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
132 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
133 | transform="scale(-0.6,-0.6)" /> | ||
134 | </marker> | ||
135 | <marker | ||
136 | inkscape:stockid="Arrow1Send" | ||
137 | orient="auto" | ||
138 | refY="0" | ||
139 | refX="0" | ||
140 | id="Arrow1Send-3" | ||
141 | style="overflow:visible"> | ||
142 | <path | ||
143 | inkscape:connector-curvature="0" | ||
144 | id="path3940-6" | ||
145 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
146 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
147 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
148 | </marker> | ||
149 | <marker | ||
150 | inkscape:stockid="Arrow1Send" | ||
151 | orient="auto" | ||
152 | refY="0" | ||
153 | refX="0" | ||
154 | id="Arrow1Send-1" | ||
155 | style="overflow:visible"> | ||
156 | <path | ||
157 | inkscape:connector-curvature="0" | ||
158 | id="path3940-2" | ||
159 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
160 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
161 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
162 | </marker> | ||
163 | <marker | ||
164 | inkscape:stockid="Arrow1Send" | ||
165 | orient="auto" | ||
166 | refY="0" | ||
167 | refX="0" | ||
168 | id="Arrow1Send-0" | ||
169 | style="overflow:visible"> | ||
170 | <path | ||
171 | inkscape:connector-curvature="0" | ||
172 | id="path3940-9" | ||
173 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
174 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
175 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | ||
176 | </marker> | ||
177 | <marker | ||
178 | inkscape:stockid="Arrow2Lend" | ||
179 | orient="auto" | ||
180 | refY="0" | ||
181 | refX="0" | ||
182 | id="Arrow2Lend-3" | ||
183 | style="overflow:visible"> | ||
184 | <path | ||
185 | id="path3946-1" | ||
186 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
187 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
188 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
189 | inkscape:connector-curvature="0" /> | ||
190 | </marker> | ||
191 | <marker | ||
192 | inkscape:stockid="Arrow2Lend" | ||
193 | orient="auto" | ||
194 | refY="0" | ||
195 | refX="0" | ||
196 | id="Arrow2Lend-4" | ||
197 | style="overflow:visible"> | ||
198 | <path | ||
199 | id="path3946-7" | ||
200 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
201 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
202 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
203 | inkscape:connector-curvature="0" /> | ||
204 | </marker> | ||
205 | <marker | ||
206 | inkscape:stockid="Arrow2Lend" | ||
207 | orient="auto" | ||
208 | refY="0" | ||
209 | refX="0" | ||
210 | id="marker4880" | ||
211 | style="overflow:visible"> | ||
212 | <path | ||
213 | id="path4882" | ||
214 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
215 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
216 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
217 | inkscape:connector-curvature="0" /> | ||
218 | </marker> | ||
219 | <marker | ||
220 | inkscape:stockid="Arrow2Lend" | ||
221 | orient="auto" | ||
222 | refY="0" | ||
223 | refX="0" | ||
224 | id="Arrow2Lend-5" | ||
225 | style="overflow:visible"> | ||
226 | <path | ||
227 | id="path3946-0" | ||
228 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
229 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
230 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
231 | inkscape:connector-curvature="0" /> | ||
232 | </marker> | ||
233 | <marker | ||
234 | inkscape:stockid="Arrow2Lend" | ||
235 | orient="auto" | ||
236 | refY="0" | ||
237 | refX="0" | ||
238 | id="Arrow2Lend-6" | ||
239 | style="overflow:visible"> | ||
240 | <path | ||
241 | id="path3946-10" | ||
242 | style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" | ||
243 | d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" | ||
244 | transform="matrix(-1.1,0,0,-1.1,-1.1,0)" | ||
245 | inkscape:connector-curvature="0" /> | ||
246 | </marker> | ||
247 | <marker | ||
248 | inkscape:stockid="Arrow1Send" | ||
249 | orient="auto" | ||
250 | refY="0" | ||
251 | refX="0" | ||
252 | id="Arrow1Send-36" | ||
253 | style="overflow:visible"> | ||
254 | <path | ||
255 | id="path3940-0" | ||
256 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
257 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
258 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
259 | inkscape:connector-curvature="0" /> | ||
260 | </marker> | ||
261 | <marker | ||
262 | inkscape:stockid="Arrow1Send" | ||
263 | orient="auto" | ||
264 | refY="0" | ||
265 | refX="0" | ||
266 | id="Arrow1Send-6" | ||
267 | style="overflow:visible"> | ||
268 | <path | ||
269 | id="path3940-26" | ||
270 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
271 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
272 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
273 | inkscape:connector-curvature="0" /> | ||
274 | </marker> | ||
275 | <marker | ||
276 | inkscape:stockid="Arrow1Send" | ||
277 | orient="auto" | ||
278 | refY="0" | ||
279 | refX="0" | ||
280 | id="Arrow1Send-8" | ||
281 | style="overflow:visible"> | ||
282 | <path | ||
283 | id="path3940-7" | ||
284 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
285 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
286 | transform="matrix(-0.2,0,0,-0.2,-1.2,0)" | ||
287 | inkscape:connector-curvature="0" /> | ||
288 | </marker> | ||
289 | </defs> | ||
290 | <sodipodi:namedview | ||
291 | pagecolor="#ffffff" | ||
292 | bordercolor="#666666" | ||
293 | borderopacity="1" | ||
294 | objecttolerance="10" | ||
295 | gridtolerance="10" | ||
296 | guidetolerance="10" | ||
297 | inkscape:pageopacity="0" | ||
298 | inkscape:pageshadow="2" | ||
299 | inkscape:window-width="1087" | ||
300 | inkscape:window-height="1144" | ||
301 | id="namedview208" | ||
302 | showgrid="true" | ||
303 | inkscape:zoom="0.70710678" | ||
304 | inkscape:cx="616.47598" | ||
305 | inkscape:cy="595.41964" | ||
306 | inkscape:window-x="813" | ||
307 | inkscape:window-y="28" | ||
308 | inkscape:window-maximized="0" | ||
309 | inkscape:current-layer="g4405" | ||
310 | fit-margin-top="5" | ||
311 | fit-margin-right="5" | ||
312 | fit-margin-left="5" | ||
313 | fit-margin-bottom="5"> | ||
314 | <inkscape:grid | ||
315 | type="xygrid" | ||
316 | id="grid3381" /> | ||
317 | </sodipodi:namedview> | ||
318 | <path | ||
319 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send-8)" | ||
320 | d="m 6922.3555,14693.733 16.472,2346.582" | ||
321 | id="path3134-9-0-3-1-9-9" | ||
322 | inkscape:connector-curvature="0" | ||
323 | sodipodi:nodetypes="cc" /> | ||
324 | <g | ||
325 | style="fill:none;stroke-width:0.025in" | ||
326 | transform="translate(2431.6011,-4570.136)" | ||
327 | id="g3188"> | ||
328 | <text | ||
329 | xml:space="preserve" | ||
330 | x="3172.5554" | ||
331 | y="13255.592" | ||
332 | font-style="normal" | ||
333 | font-weight="bold" | ||
334 | font-size="192" | ||
335 | id="text202" | ||
336 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
337 | <g | ||
338 | id="g3107" | ||
339 | transform="translate(947.90548,11584.029)"> | ||
340 | <rect | ||
341 | id="rect112" | ||
342 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
343 | rx="0" | ||
344 | height="1370.8721" | ||
345 | width="2809.1992" | ||
346 | y="949.37109" | ||
347 | x="2084.55" /> | ||
348 | <rect | ||
349 | id="rect112-3" | ||
350 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
351 | rx="0" | ||
352 | height="1294.8468" | ||
353 | width="2809.1992" | ||
354 | y="1025.3964" | ||
355 | x="2084.55" /> | ||
356 | </g> | ||
357 | <text | ||
358 | xml:space="preserve" | ||
359 | x="5452.3052" | ||
360 | y="13844.535" | ||
361 | font-style="normal" | ||
362 | font-weight="bold" | ||
363 | font-size="192" | ||
364 | id="text202-7-5-1-2-3-7" | ||
365 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
366 | sodipodi:linespacing="125%"><tspan | ||
367 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
368 | id="tspan3104-6-5">Root</tspan></text> | ||
369 | </g> | ||
370 | <rect | ||
371 | ry="0" | ||
372 | id="rect118" | ||
373 | style="fill:none;stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115769;stroke-dashoffset:0" | ||
374 | rx="0" | ||
375 | height="7164.1636" | ||
376 | width="13639.945" | ||
377 | y="7160.9038" | ||
378 | x="37.490932" /> | ||
379 | <text | ||
380 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
381 | id="text202-7" | ||
382 | font-size="192" | ||
383 | font-weight="bold" | ||
384 | font-style="normal" | ||
385 | y="7367.7192" | ||
386 | x="134.46094" | ||
387 | xml:space="preserve">rcu_report_rnp()</text> | ||
388 | <g | ||
389 | style="fill:none;stroke-width:0.025in" | ||
390 | transform="translate(2311.1375,-4533.769)" | ||
391 | id="g3147"> | ||
392 | <g | ||
393 | style="fill:none;stroke-width:0.025in" | ||
394 | id="g3107-6" | ||
395 | transform="translate(3054.6101,13760.052)"> | ||
396 | <rect | ||
397 | id="rect112-7" | ||
398 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
399 | rx="0" | ||
400 | height="1370.8721" | ||
401 | width="2809.1992" | ||
402 | y="949.37109" | ||
403 | x="2084.55" /> | ||
404 | <rect | ||
405 | id="rect112-3-5" | ||
406 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
407 | rx="0" | ||
408 | height="1294.8468" | ||
409 | width="2809.1992" | ||
410 | y="1025.3964" | ||
411 | x="2084.55" /> | ||
412 | </g> | ||
413 | </g> | ||
414 | <g | ||
415 | style="fill:none;stroke-width:0.025in" | ||
416 | transform="translate(3162.2182,-4570.136)" | ||
417 | id="g3153"> | ||
418 | <g | ||
419 | style="fill:none;stroke-width:0.025in" | ||
420 | id="g3107-6-9" | ||
421 | transform="translate(5213.0126,16008.808)"> | ||
422 | <rect | ||
423 | id="rect112-7-1" | ||
424 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
425 | rx="0" | ||
426 | height="1370.8721" | ||
427 | width="2809.1992" | ||
428 | y="949.37109" | ||
429 | x="2084.55" /> | ||
430 | <rect | ||
431 | id="rect112-3-5-2" | ||
432 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
433 | rx="0" | ||
434 | height="1294.8468" | ||
435 | width="2809.1992" | ||
436 | y="1025.3964" | ||
437 | x="2084.55" /> | ||
438 | </g> | ||
439 | <text | ||
440 | xml:space="preserve" | ||
441 | x="9717.4141" | ||
442 | y="18269.314" | ||
443 | font-style="normal" | ||
444 | font-weight="bold" | ||
445 | font-size="192" | ||
446 | id="text202-7-5-1-2-3-7-35-7" | ||
447 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
448 | sodipodi:linespacing="125%"><tspan | ||
449 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
450 | id="tspan3104-6-5-6-0">Leaf</tspan></text> | ||
451 | </g> | ||
452 | <g | ||
453 | transform="translate(-1661.3439,-4533.769)" | ||
454 | id="g3147-3" | ||
455 | style="fill:none;stroke-width:0.025in"> | ||
456 | <g | ||
457 | style="fill:none;stroke-width:0.025in" | ||
458 | id="g3107-6-6" | ||
459 | transform="translate(3054.6101,13760.052)"> | ||
460 | <rect | ||
461 | id="rect112-7-0" | ||
462 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
463 | rx="0" | ||
464 | height="1370.8721" | ||
465 | width="2809.1992" | ||
466 | y="949.37109" | ||
467 | x="2084.55" /> | ||
468 | <rect | ||
469 | id="rect112-3-5-6" | ||
470 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
471 | rx="0" | ||
472 | height="1294.8468" | ||
473 | width="2809.1992" | ||
474 | y="1025.3964" | ||
475 | x="2084.55" /> | ||
476 | </g> | ||
477 | <text | ||
478 | xml:space="preserve" | ||
479 | x="5284.9155" | ||
480 | y="15386.685" | ||
481 | font-style="normal" | ||
482 | font-weight="bold" | ||
483 | font-size="192" | ||
484 | id="text202-3" | ||
485 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
486 | </g> | ||
487 | <g | ||
488 | transform="translate(-170.52365,-4570.136)" | ||
489 | id="g3153-2" | ||
490 | style="fill:none;stroke-width:0.025in"> | ||
491 | <g | ||
492 | style="fill:none;stroke-width:0.025in" | ||
493 | id="g3107-6-9-6" | ||
494 | transform="translate(5213.0126,16008.808)"> | ||
495 | <rect | ||
496 | id="rect112-7-1-1" | ||
497 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
498 | rx="0" | ||
499 | height="1370.8721" | ||
500 | width="2809.1992" | ||
501 | y="949.37109" | ||
502 | x="2084.55" /> | ||
503 | <rect | ||
504 | id="rect112-3-5-2-8" | ||
505 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
506 | rx="0" | ||
507 | height="1294.8468" | ||
508 | width="2809.1992" | ||
509 | y="1025.3964" | ||
510 | x="2084.55" /> | ||
511 | </g> | ||
512 | <text | ||
513 | xml:space="preserve" | ||
514 | x="9717.4141" | ||
515 | y="18269.314" | ||
516 | font-style="normal" | ||
517 | font-weight="bold" | ||
518 | font-size="192" | ||
519 | id="text202-7-5-1-2-3-7-35-7-7" | ||
520 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
521 | sodipodi:linespacing="125%"><tspan | ||
522 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
523 | id="tspan3104-6-5-6-0-9">Leaf</tspan></text> | ||
524 | </g> | ||
525 | <g | ||
526 | transform="translate(-3503.2651,-4570.136)" | ||
527 | id="g3153-20" | ||
528 | style="fill:none;stroke-width:0.025in"> | ||
529 | <g | ||
530 | style="fill:none;stroke-width:0.025in" | ||
531 | id="g3107-6-9-2" | ||
532 | transform="translate(5213.0126,16008.808)"> | ||
533 | <rect | ||
534 | id="rect112-7-1-3" | ||
535 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
536 | rx="0" | ||
537 | height="1370.8721" | ||
538 | width="2809.1992" | ||
539 | y="949.37109" | ||
540 | x="2084.55" /> | ||
541 | <rect | ||
542 | id="rect112-3-5-2-7" | ||
543 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
544 | rx="0" | ||
545 | height="1294.8468" | ||
546 | width="2809.1992" | ||
547 | y="1025.3964" | ||
548 | x="2084.55" /> | ||
549 | </g> | ||
550 | <text | ||
551 | xml:space="preserve" | ||
552 | x="9717.4141" | ||
553 | y="18269.314" | ||
554 | font-style="normal" | ||
555 | font-weight="bold" | ||
556 | font-size="192" | ||
557 | id="text202-7-5-1-2-3-7-35-7-5" | ||
558 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
559 | sodipodi:linespacing="125%"><tspan | ||
560 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
561 | id="tspan3104-6-5-6-0-92">Leaf</tspan></text> | ||
562 | </g> | ||
563 | <g | ||
564 | transform="translate(-6836.0062,-4570.136)" | ||
565 | id="g3153-28" | ||
566 | style="fill:none;stroke-width:0.025in"> | ||
567 | <g | ||
568 | style="fill:none;stroke-width:0.025in" | ||
569 | id="g3107-6-9-9" | ||
570 | transform="translate(5213.0126,16008.808)"> | ||
571 | <rect | ||
572 | id="rect112-7-1-7" | ||
573 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
574 | rx="0" | ||
575 | height="1370.8721" | ||
576 | width="2809.1992" | ||
577 | y="949.37109" | ||
578 | x="2084.55" /> | ||
579 | <rect | ||
580 | id="rect112-3-5-2-3" | ||
581 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
582 | rx="0" | ||
583 | height="1294.8468" | ||
584 | width="2809.1992" | ||
585 | y="1025.3964" | ||
586 | x="2084.55" /> | ||
587 | </g> | ||
588 | <text | ||
589 | xml:space="preserve" | ||
590 | x="9717.4141" | ||
591 | y="18269.314" | ||
592 | font-style="normal" | ||
593 | font-weight="bold" | ||
594 | font-size="192" | ||
595 | id="text202-7-5-1-2-3-7-35-7-6" | ||
596 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
597 | sodipodi:linespacing="125%"><tspan | ||
598 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
599 | id="tspan3104-6-5-6-0-1">Leaf</tspan></text> | ||
600 | <text | ||
601 | xml:space="preserve" | ||
602 | x="7422.3945" | ||
603 | y="17661.012" | ||
604 | font-style="normal" | ||
605 | font-weight="bold" | ||
606 | font-size="192" | ||
607 | id="text202-67" | ||
608 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">->qsmask &= ~->grpmask</text> | ||
609 | </g> | ||
610 | <path | ||
611 | style="fill:none;stroke:#000000;stroke-width:13.29812908px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
612 | d="m 5454.9508,9312.2011 -582.9982,865.0929" | ||
613 | id="path3414" | ||
614 | inkscape:connector-curvature="0" /> | ||
615 | <path | ||
616 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
617 | d="m 8263.7327,9312.4631 582.9982,865.0929" | ||
618 | id="path3414-9" | ||
619 | inkscape:connector-curvature="0" /> | ||
620 | <path | ||
621 | style="fill:none;stroke:#000000;stroke-width:13.29812813px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
622 | d="m 3504.3177,11525.377 -582.9982,865.094" | ||
623 | id="path3414-8" | ||
624 | inkscape:connector-curvature="0" /> | ||
625 | <path | ||
626 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
627 | d="m 10249.365,11525.639 583,865.094" | ||
628 | id="path3414-9-4" | ||
629 | inkscape:connector-curvature="0" /> | ||
630 | <path | ||
631 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
632 | d="m 4920.8141,11525.377 0,846.288" | ||
633 | id="path3414-8-3" | ||
634 | inkscape:connector-curvature="0" | ||
635 | sodipodi:nodetypes="cc" /> | ||
636 | <path | ||
637 | style="fill:none;stroke:#000000;stroke-width:13.29812717px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" | ||
638 | d="m 8797.7894,11551.973 0,846.288" | ||
639 | id="path3414-8-3-6" | ||
640 | inkscape:connector-curvature="0" | ||
641 | sodipodi:nodetypes="cc" /> | ||
642 | <path | ||
643 | sodipodi:nodetypes="cccccccccccccccc" | ||
644 | inkscape:connector-curvature="0" | ||
645 | id="path3134-9-0-3" | ||
646 | d="m 6912.3719,6251.0009 -2.8276,1315.669 -5343.8436,17.119 -2.8276,6561.7441 2039.08,17.963 -2.7042,-2144.14 -491.6706,-0.211 -2.7042,-1993.689 1487.718,-4.728 -17.8001,1812.453 2017.2374,-7.643 4.9532,-2151.5715 -1405.5263,11.1629 -10.9191,-1891.1465 1739.2165,-2.718 0.1141,7086.0301" | ||
647 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" /> | ||
648 | <g | ||
649 | id="g4405" | ||
650 | transform="translate(1241.222,9051.8644)"> | ||
651 | <path | ||
652 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Send)" | ||
653 | d="m 5694.6259,-9006.994 -2.828,3233.9212 -2616.9163,17.1191 15.9788,1446.406 2603.2719,-0.8434 -29.6182,2086.6656" | ||
654 | id="path3134-9-0-3-1" | ||
655 | inkscape:connector-curvature="0" | ||
656 | sodipodi:nodetypes="cccccc" /> | ||
657 | <path | ||
658 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" | ||
659 | d="m 5674.0539,-5773.0705 2616.9163,17.1191 -15.9788,1465.2124 -2584.4655,-19.6498" | ||
660 | id="path3134-9-0-3-1-9" | ||
661 | inkscape:connector-curvature="0" | ||
662 | sodipodi:nodetypes="cccc" /> | ||
663 | <g | ||
664 | transform="translate(-456.05505,0)" | ||
665 | id="g3115"> | ||
666 | <rect | ||
667 | x="4485.6865" | ||
668 | y="-8571.0352" | ||
669 | width="3296.428" | ||
670 | height="2199.2754" | ||
671 | rx="0" | ||
672 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057923, 60.00115859;stroke-dashoffset:0" | ||
673 | id="rect118-3" | ||
674 | ry="0" /> | ||
675 | <g | ||
676 | style="fill:none;stroke-width:0.025in" | ||
677 | id="g3107-7" | ||
678 | transform="translate(2656.673,-8952.2968)"> | ||
679 | <rect | ||
680 | id="rect112-5" | ||
681 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
682 | rx="0" | ||
683 | height="1370.8721" | ||
684 | width="2809.1992" | ||
685 | y="949.37109" | ||
686 | x="2084.55" /> | ||
687 | <rect | ||
688 | id="rect112-3-3" | ||
689 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
690 | rx="0" | ||
691 | height="1294.8468" | ||
692 | width="2809.1992" | ||
693 | y="1025.3964" | ||
694 | x="2084.55" /> | ||
695 | </g> | ||
696 | <text | ||
697 | xml:space="preserve" | ||
698 | x="4714.3018" | ||
699 | y="-8349.1943" | ||
700 | font-style="normal" | ||
701 | font-weight="bold" | ||
702 | font-size="192" | ||
703 | id="text202-7-5" | ||
704 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">note_gp_changes()</text> | ||
705 | <text | ||
706 | xml:space="preserve" | ||
707 | x="5014.2954" | ||
708 | y="-7170.978" | ||
709 | font-style="normal" | ||
710 | font-weight="bold" | ||
711 | font-size="192" | ||
712 | id="text202-6-6" | ||
713 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rdp->gpnum</text> | ||
714 | <text | ||
715 | xml:space="preserve" | ||
716 | x="5035.4155" | ||
717 | y="-7436.1636" | ||
718 | font-style="normal" | ||
719 | font-weight="bold" | ||
720 | font-size="192" | ||
721 | id="text202-6-6-2" | ||
722 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">__note_gp_changes()</text> | ||
723 | <text | ||
724 | xml:space="preserve" | ||
725 | x="7162.7471" | ||
726 | y="-6692.6006" | ||
727 | font-style="normal" | ||
728 | font-weight="bold" | ||
729 | font-size="192" | ||
730 | id="text202-7-5-1-2-3" | ||
731 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
732 | sodipodi:linespacing="125%"><tspan | ||
733 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans" | ||
734 | id="tspan3104-6">Leaf</tspan></text> | ||
735 | </g> | ||
736 | <g | ||
737 | transform="translate(-2049.897,-585.6713)" | ||
738 | id="g3148"> | ||
739 | <rect | ||
740 | ry="0" | ||
741 | id="rect118-3-5" | ||
742 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
743 | rx="0" | ||
744 | height="412.66794" | ||
745 | width="3240.0085" | ||
746 | y="-4640.499" | ||
747 | x="3517.1572" /> | ||
748 | <text | ||
749 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
750 | id="text202-7-5-3" | ||
751 | font-size="192" | ||
752 | font-weight="bold" | ||
753 | font-style="normal" | ||
754 | y="-4418.6582" | ||
755 | x="3745.7725" | ||
756 | xml:space="preserve">rcu_node_context_switch()</text> | ||
757 | </g> | ||
758 | <g | ||
759 | transform="translate(3131.2648,-585.6713)" | ||
760 | id="g3148-5"> | ||
761 | <rect | ||
762 | ry="0" | ||
763 | id="rect118-3-5-6" | ||
764 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
765 | rx="0" | ||
766 | height="412.66794" | ||
767 | width="3240.0085" | ||
768 | y="-4640.499" | ||
769 | x="3517.1572" /> | ||
770 | <text | ||
771 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
772 | id="text202-7-5-3-2" | ||
773 | font-size="192" | ||
774 | font-weight="bold" | ||
775 | font-style="normal" | ||
776 | y="-4418.6582" | ||
777 | x="3745.7725" | ||
778 | xml:space="preserve">rcu_check_callbacks()</text> | ||
779 | </g> | ||
780 | <g | ||
781 | transform="translate(399.7744,828.86448)" | ||
782 | id="g3148-9"> | ||
783 | <rect | ||
784 | ry="0" | ||
785 | id="rect118-3-5-1" | ||
786 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
787 | rx="0" | ||
788 | height="864.02148" | ||
789 | width="3540.9114" | ||
790 | y="-4640.499" | ||
791 | x="3517.1572" /> | ||
792 | <text | ||
793 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
794 | id="text202-7-5-3-27" | ||
795 | font-size="192" | ||
796 | font-weight="bold" | ||
797 | font-style="normal" | ||
798 | y="-4418.6582" | ||
799 | x="3745.7725" | ||
800 | xml:space="preserve">rcu_process_callbacks()</text> | ||
801 | <text | ||
802 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
803 | id="text202-7-5-3-27-0" | ||
804 | font-size="192" | ||
805 | font-weight="bold" | ||
806 | font-style="normal" | ||
807 | y="-4165.7954" | ||
808 | x="3745.7725" | ||
809 | xml:space="preserve">rcu_check_quiescent_state())</text> | ||
810 | <text | ||
811 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
812 | id="text202-7-5-3-27-0-9" | ||
813 | font-size="192" | ||
814 | font-weight="bold" | ||
815 | font-style="normal" | ||
816 | y="-3914.085" | ||
817 | x="3745.7725" | ||
818 | xml:space="preserve">rcu__report_qs_rdp())</text> | ||
819 | </g> | ||
820 | <g | ||
821 | id="g4504-3" | ||
822 | transform="translate(5136.3339,-23870.546)"> | ||
823 | <path | ||
824 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
825 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
826 | sodipodi:ry="39.550262" | ||
827 | sodipodi:rx="65.917107" | ||
828 | sodipodi:cy="345.54001" | ||
829 | sodipodi:cx="319.379" | ||
830 | id="path3084-6" | ||
831 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
832 | sodipodi:type="arc" /> | ||
833 | <text | ||
834 | sodipodi:linespacing="125%" | ||
835 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
836 | id="text202-7-5-1-2-7" | ||
837 | font-size="192" | ||
838 | font-weight="bold" | ||
839 | font-style="normal" | ||
840 | y="16835.086" | ||
841 | x="4409.043" | ||
842 | xml:space="preserve"><tspan | ||
843 | id="tspan3104-5" | ||
844 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
845 | <text | ||
846 | sodipodi:linespacing="125%" | ||
847 | id="text3110-3" | ||
848 | y="17055.541" | ||
849 | x="4579.373" | ||
850 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
851 | xml:space="preserve"><tspan | ||
852 | y="17055.541" | ||
853 | x="4579.373" | ||
854 | id="tspan3112-5" | ||
855 | sodipodi:role="line">read-side</tspan></text> | ||
856 | <text | ||
857 | sodipodi:linespacing="125%" | ||
858 | id="text3114-6" | ||
859 | y="17297.08" | ||
860 | x="4584.8276" | ||
861 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
862 | xml:space="preserve"><tspan | ||
863 | y="17297.08" | ||
864 | x="4584.8276" | ||
865 | id="tspan3116-2" | ||
866 | sodipodi:role="line">critical section</tspan></text> | ||
867 | </g> | ||
868 | <g | ||
869 | id="g4504-3-9" | ||
870 | transform="translate(5136.3339,-20417.959)"> | ||
871 | <path | ||
872 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
873 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
874 | sodipodi:ry="39.550262" | ||
875 | sodipodi:rx="65.917107" | ||
876 | sodipodi:cy="345.54001" | ||
877 | sodipodi:cx="319.379" | ||
878 | id="path3084-6-1" | ||
879 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
880 | sodipodi:type="arc" /> | ||
881 | <text | ||
882 | sodipodi:linespacing="125%" | ||
883 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
884 | id="text202-7-5-1-2-7-2" | ||
885 | font-size="192" | ||
886 | font-weight="bold" | ||
887 | font-style="normal" | ||
888 | y="16835.086" | ||
889 | x="4409.043" | ||
890 | xml:space="preserve"><tspan | ||
891 | id="tspan3104-5-7" | ||
892 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
893 | <text | ||
894 | sodipodi:linespacing="125%" | ||
895 | id="text3110-3-0" | ||
896 | y="17055.541" | ||
897 | x="4579.373" | ||
898 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
899 | xml:space="preserve"><tspan | ||
900 | y="17055.541" | ||
901 | x="4579.373" | ||
902 | id="tspan3112-5-9" | ||
903 | sodipodi:role="line">read-side</tspan></text> | ||
904 | <text | ||
905 | sodipodi:linespacing="125%" | ||
906 | id="text3114-6-3" | ||
907 | y="17297.08" | ||
908 | x="4584.8276" | ||
909 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
910 | xml:space="preserve"><tspan | ||
911 | y="17297.08" | ||
912 | x="4584.8276" | ||
913 | id="tspan3116-2-6" | ||
914 | sodipodi:role="line">critical section</tspan></text> | ||
915 | </g> | ||
916 | <g | ||
917 | id="g4504-3-0" | ||
918 | transform="translate(-2824.9451,-23870.546)"> | ||
919 | <path | ||
920 | transform="matrix(13.298129,0,0,13.298129,228.84485,12456.379)" | ||
921 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
922 | sodipodi:ry="39.550262" | ||
923 | sodipodi:rx="65.917107" | ||
924 | sodipodi:cy="345.54001" | ||
925 | sodipodi:cx="319.379" | ||
926 | id="path3084-6-6" | ||
927 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
928 | sodipodi:type="arc" /> | ||
929 | <text | ||
930 | sodipodi:linespacing="125%" | ||
931 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
932 | id="text202-7-5-1-2-7-26" | ||
933 | font-size="192" | ||
934 | font-weight="bold" | ||
935 | font-style="normal" | ||
936 | y="16835.086" | ||
937 | x="4409.043" | ||
938 | xml:space="preserve"><tspan | ||
939 | id="tspan3104-5-1" | ||
940 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
941 | <text | ||
942 | sodipodi:linespacing="125%" | ||
943 | id="text3110-3-8" | ||
944 | y="17055.541" | ||
945 | x="4579.373" | ||
946 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
947 | xml:space="preserve"><tspan | ||
948 | y="17055.541" | ||
949 | x="4579.373" | ||
950 | id="tspan3112-5-7" | ||
951 | sodipodi:role="line">read-side</tspan></text> | ||
952 | <text | ||
953 | sodipodi:linespacing="125%" | ||
954 | id="text3114-6-9" | ||
955 | y="17297.08" | ||
956 | x="4584.8276" | ||
957 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
958 | xml:space="preserve"><tspan | ||
959 | y="17297.08" | ||
960 | x="4584.8276" | ||
961 | id="tspan3116-2-2" | ||
962 | sodipodi:role="line">critical section</tspan></text> | ||
963 | </g> | ||
964 | <g | ||
965 | id="g4504-3-9-0" | ||
966 | transform="translate(-2931.3303,-20417.959)"> | ||
967 | <path | ||
968 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
969 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
970 | sodipodi:ry="39.550262" | ||
971 | sodipodi:rx="65.917107" | ||
972 | sodipodi:cy="345.54001" | ||
973 | sodipodi:cx="319.379" | ||
974 | id="path3084-6-1-2" | ||
975 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
976 | sodipodi:type="arc" /> | ||
977 | <text | ||
978 | sodipodi:linespacing="125%" | ||
979 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
980 | id="text202-7-5-1-2-7-2-3" | ||
981 | font-size="192" | ||
982 | font-weight="bold" | ||
983 | font-style="normal" | ||
984 | y="16835.086" | ||
985 | x="4409.043" | ||
986 | xml:space="preserve"><tspan | ||
987 | id="tspan3104-5-7-7" | ||
988 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">RCU</tspan></text> | ||
989 | <text | ||
990 | sodipodi:linespacing="125%" | ||
991 | id="text3110-3-0-5" | ||
992 | y="17055.541" | ||
993 | x="4579.373" | ||
994 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
995 | xml:space="preserve"><tspan | ||
996 | y="17055.541" | ||
997 | x="4579.373" | ||
998 | id="tspan3112-5-9-9" | ||
999 | sodipodi:role="line">read-side</tspan></text> | ||
1000 | <text | ||
1001 | sodipodi:linespacing="125%" | ||
1002 | id="text3114-6-3-2" | ||
1003 | y="17297.08" | ||
1004 | x="4584.8276" | ||
1005 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1006 | xml:space="preserve"><tspan | ||
1007 | y="17297.08" | ||
1008 | x="4584.8276" | ||
1009 | id="tspan3116-2-6-2" | ||
1010 | sodipodi:role="line">critical section</tspan></text> | ||
1011 | </g> | ||
1012 | <path | ||
1013 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" | ||
1014 | d="m 9699.0326,-6264.1445 0,2393.6632" | ||
1015 | id="path3134-9-0-3-1-9-8" | ||
1016 | inkscape:connector-curvature="0" | ||
1017 | sodipodi:nodetypes="cc" /> | ||
1018 | <path | ||
1019 | style="fill:none;stroke:#969696;stroke-width:53.19251633;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:none" | ||
1020 | d="m 1640.3664,-6264.1445 0,2393.6632" | ||
1021 | id="path3134-9-0-3-1-9-8-9" | ||
1022 | inkscape:connector-curvature="0" | ||
1023 | sodipodi:nodetypes="cc" /> | ||
1024 | </g> | ||
1025 | <g | ||
1026 | id="g4504" | ||
1027 | transform="translate(2347.5727,554.69889)"> | ||
1028 | <path | ||
1029 | transform="matrix(13.298129,0,0,13.298129,335.22989,12456.379)" | ||
1030 | d="m 385.2961,345.54001 c 0,21.84301 -29.51209,39.55026 -65.9171,39.55026 -36.40501,0 -65.91711,-17.70725 -65.91711,-39.55026 0,-21.84301 29.5121,-39.55026 65.91711,-39.55026 36.40501,0 65.9171,17.70725 65.9171,39.55026 z" | ||
1031 | sodipodi:ry="39.550262" | ||
1032 | sodipodi:rx="65.917107" | ||
1033 | sodipodi:cy="345.54001" | ||
1034 | sodipodi:cx="319.379" | ||
1035 | id="path3084" | ||
1036 | style="fill:#ffffa1;fill-opacity:0;stroke:#000000;stroke-width:2.25600004;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.256, 4.512;stroke-dashoffset:0" | ||
1037 | sodipodi:type="arc" /> | ||
1038 | <text | ||
1039 | sodipodi:linespacing="125%" | ||
1040 | style="font-size:192px;font-style:normal;font-weight:bold;line-height:125%;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1041 | id="text202-7-5-1-2" | ||
1042 | font-size="192" | ||
1043 | font-weight="bold" | ||
1044 | font-style="normal" | ||
1045 | y="16835.086" | ||
1046 | x="4273.4326" | ||
1047 | xml:space="preserve"><tspan | ||
1048 | id="tspan3104" | ||
1049 | style="font-size:159.57754517px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans">Wake up</tspan></text> | ||
1050 | <text | ||
1051 | sodipodi:linespacing="125%" | ||
1052 | id="text3110" | ||
1053 | y="17055.541" | ||
1054 | x="4585.2246" | ||
1055 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1056 | xml:space="preserve"><tspan | ||
1057 | y="17055.541" | ||
1058 | x="4585.2246" | ||
1059 | id="tspan3112" | ||
1060 | sodipodi:role="line">grace-period</tspan></text> | ||
1061 | <text | ||
1062 | sodipodi:linespacing="125%" | ||
1063 | id="text3114" | ||
1064 | y="17297.08" | ||
1065 | x="4582.3804" | ||
1066 | style="font-size:159.57754517px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" | ||
1067 | xml:space="preserve"><tspan | ||
1068 | y="17297.08" | ||
1069 | x="4582.3804" | ||
1070 | id="tspan3116" | ||
1071 | sodipodi:role="line">kernel thread</tspan></text> | ||
1072 | </g> | ||
1073 | <g | ||
1074 | transform="translate(1783.6576,20674.512)" | ||
1075 | id="g3148-2"> | ||
1076 | <rect | ||
1077 | ry="0" | ||
1078 | id="rect118-3-5-2" | ||
1079 | style="fill:none;stroke:#000000;stroke-width:30.00057983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057963, 60.00115926;stroke-dashoffset:0" | ||
1080 | rx="0" | ||
1081 | height="412.66794" | ||
1082 | width="3240.0085" | ||
1083 | y="-4640.499" | ||
1084 | x="3517.1572" /> | ||
1085 | <text | ||
1086 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier" | ||
1087 | id="text202-7-5-3-8" | ||
1088 | font-size="192" | ||
1089 | font-weight="bold" | ||
1090 | font-style="normal" | ||
1091 | y="-4418.6582" | ||
1092 | x="4064.9268" | ||
1093 | xml:space="preserve">rcu_report_qs_rsp()</text> | ||
1094 | </g> | ||
1095 | </svg> | ||
diff --git a/Documentation/RCU/Design/Memory-Ordering/rcu_node-lock.svg b/Documentation/RCU/Design/Memory-Ordering/rcu_node-lock.svg new file mode 100644 index 000000000000..94c96c595aed --- /dev/null +++ b/Documentation/RCU/Design/Memory-Ordering/rcu_node-lock.svg | |||
@@ -0,0 +1,229 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> | ||
3 | |||
4 | <!-- CreationDate: Wed Dec 9 17:35:03 2015 --> | ||
5 | |||
6 | <!-- Magnification: 2.000 --> | ||
7 | |||
8 | <svg | ||
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
10 | xmlns:cc="http://creativecommons.org/ns#" | ||
11 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
12 | xmlns:svg="http://www.w3.org/2000/svg" | ||
13 | xmlns="http://www.w3.org/2000/svg" | ||
14 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
16 | width="303.54147" | ||
17 | height="211.57945" | ||
18 | viewBox="-44 -44 4036.5336 2812.3117" | ||
19 | id="svg2" | ||
20 | version="1.1" | ||
21 | inkscape:version="0.48.4 r9939" | ||
22 | sodipodi:docname="rcu_node-lock.svg"> | ||
23 | <metadata | ||
24 | id="metadata212"> | ||
25 | <rdf:RDF> | ||
26 | <cc:Work | ||
27 | rdf:about=""> | ||
28 | <dc:format>image/svg+xml</dc:format> | ||
29 | <dc:type | ||
30 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
31 | <dc:title /> | ||
32 | </cc:Work> | ||
33 | </rdf:RDF> | ||
34 | </metadata> | ||
35 | <defs | ||
36 | id="defs210"> | ||
37 | <marker | ||
38 | inkscape:stockid="Arrow1Mend" | ||
39 | orient="auto" | ||
40 | refY="0" | ||
41 | refX="0" | ||
42 | id="Arrow1Mend" | ||
43 | style="overflow:visible"> | ||
44 | <path | ||
45 | id="path3970" | ||
46 | d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" | ||
47 | style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" | ||
48 | transform="matrix(-0.4,0,0,-0.4,-4,0)" | ||
49 | inkscape:connector-curvature="0" /> | ||
50 | </marker> | ||
51 | </defs> | ||
52 | <sodipodi:namedview | ||
53 | pagecolor="#ffffff" | ||
54 | bordercolor="#666666" | ||
55 | borderopacity="1" | ||
56 | objecttolerance="10" | ||
57 | gridtolerance="10" | ||
58 | guidetolerance="10" | ||
59 | inkscape:pageopacity="0" | ||
60 | inkscape:pageshadow="2" | ||
61 | inkscape:window-width="1087" | ||
62 | inkscape:window-height="1144" | ||
63 | id="namedview208" | ||
64 | showgrid="false" | ||
65 | inkscape:zoom="1.0495049" | ||
66 | inkscape:cx="311.2033" | ||
67 | inkscape:cy="168.10913" | ||
68 | inkscape:window-x="833" | ||
69 | inkscape:window-y="28" | ||
70 | inkscape:window-maximized="0" | ||
71 | inkscape:current-layer="g4" | ||
72 | fit-margin-top="5" | ||
73 | fit-margin-right="5" | ||
74 | fit-margin-left="5" | ||
75 | fit-margin-bottom="5" /> | ||
76 | <g | ||
77 | style="fill:none;stroke-width:0.025in" | ||
78 | id="g4" | ||
79 | transform="translate(-1905.5784,-4568.3024)"> | ||
80 | <!-- Line: box --> | ||
81 | <!-- Line: box --> | ||
82 | <!-- Line: box --> | ||
83 | <!-- Line --> | ||
84 | <!-- Arrowhead on XXXpoint 5250 8100 - 5710 5790--> | ||
85 | <!-- Line --> | ||
86 | <!-- Arrowhead on XXXpoint 4050 9300 - 4512 7140--> | ||
87 | <!-- Line --> | ||
88 | <!-- Arrowhead on XXXpoint 1040 9300 - 1502 7140--> | ||
89 | <!-- Line --> | ||
90 | <!-- Arrowhead on XXXpoint 2240 8100 - 2702 5940--> | ||
91 | <!-- Line: box --> | ||
92 | <!-- Line: box --> | ||
93 | <!-- Line --> | ||
94 | <!-- Arrowhead on XXXpoint 1350 3450 - 2444 2510--> | ||
95 | <!-- Line --> | ||
96 | <!-- Arrowhead on XXXpoint 4950 3450 - 3854 2510--> | ||
97 | <!-- Line --> | ||
98 | <!-- Arrowhead on XXXpoint 4050 6600 - 4050 4290--> | ||
99 | <!-- Line --> | ||
100 | <!-- Arrowhead on XXXpoint 1050 6600 - 1050 4290--> | ||
101 | <!-- Line --> | ||
102 | <!-- Arrowhead on XXXpoint 2250 5400 - 2250 4290--> | ||
103 | <!-- Line --> | ||
104 | <!-- Arrowhead on XXXpoint 2250 8100 - 2250 6240--> | ||
105 | <!-- Line --> | ||
106 | <!-- Arrowhead on XXXpoint 1050 9300 - 1050 7440--> | ||
107 | <!-- Line --> | ||
108 | <!-- Arrowhead on XXXpoint 4050 9300 - 4050 7440--> | ||
109 | <!-- Line --> | ||
110 | <!-- Arrowhead on XXXpoint 5250 8100 - 5250 6240--> | ||
111 | <!-- Circle --> | ||
112 | <!-- Circle --> | ||
113 | <!-- Circle --> | ||
114 | <!-- Circle --> | ||
115 | <!-- Circle --> | ||
116 | <!-- Circle --> | ||
117 | <!-- Circle --> | ||
118 | <!-- Circle --> | ||
119 | <!-- Circle --> | ||
120 | <!-- Line: box --> | ||
121 | <!-- Line: box --> | ||
122 | <!-- Line: box --> | ||
123 | <!-- Line: box --> | ||
124 | <!-- Line: box --> | ||
125 | <!-- Line: box --> | ||
126 | <!-- Line: box --> | ||
127 | <!-- Line: box --> | ||
128 | <!-- Line: box --> | ||
129 | <!-- Line: box --> | ||
130 | <!-- Line --> | ||
131 | <!-- Line --> | ||
132 | <!-- Arrowhead on XXXpoint 9300 3150 - 10860 3150--> | ||
133 | <!-- Line: box --> | ||
134 | <!-- Line --> | ||
135 | <!-- Arrowhead on XXXpoint 11400 3600 - 11400 4410--> | ||
136 | <!-- Line: box --> | ||
137 | <rect | ||
138 | x="1943.0693" | ||
139 | y="4603.417" | ||
140 | width="3873.5518" | ||
141 | height="2650.6289" | ||
142 | rx="0" | ||
143 | style="stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:30.00057884, 60.00115769;stroke-dashoffset:0" | ||
144 | id="rect118" | ||
145 | ry="0" /> | ||
146 | <!-- Line --> | ||
147 | <!-- Arrowhead on XXXpoint 11400 5100 - 11400 5910--> | ||
148 | <!-- Line: box --> | ||
149 | <!-- Line --> | ||
150 | <!-- Arrowhead on XXXpoint 9900 4650 - 10860 4650--> | ||
151 | <!-- Line --> | ||
152 | <!-- Arrowhead on XXXpoint 9600 6150 - 10860 6150--> | ||
153 | <!-- Text --> | ||
154 | <!-- Text --> | ||
155 | <!-- Text --> | ||
156 | <!-- Text --> | ||
157 | <!-- Text --> | ||
158 | <!-- Text --> | ||
159 | <!-- Text --> | ||
160 | <!-- Text --> | ||
161 | <!-- Text --> | ||
162 | <!-- Text --> | ||
163 | <!-- Text --> | ||
164 | <!-- Text --> | ||
165 | <!-- Text --> | ||
166 | <!-- Text --> | ||
167 | <!-- Text --> | ||
168 | <!-- Text --> | ||
169 | <!-- Text --> | ||
170 | <!-- Text --> | ||
171 | <!-- Text --> | ||
172 | <!-- Text --> | ||
173 | <!-- Text --> | ||
174 | <!-- Text --> | ||
175 | <!-- Text --> | ||
176 | <!-- Text --> | ||
177 | <!-- Text --> | ||
178 | <!-- Text --> | ||
179 | <!-- Line --> | ||
180 | <!-- Arrowhead on XXXpoint 5250 5400 - 5250 4290--> | ||
181 | <!-- Line: box --> | ||
182 | <!-- Line: box --> | ||
183 | <!-- Line: box --> | ||
184 | <!-- Line: box --> | ||
185 | <!-- Text --> | ||
186 | <!-- Text --> | ||
187 | <!-- Text --> | ||
188 | <text | ||
189 | xml:space="preserve" | ||
190 | x="3105.219" | ||
191 | y="6425.6445" | ||
192 | font-style="normal" | ||
193 | font-weight="bold" | ||
194 | font-size="192" | ||
195 | id="text202" | ||
196 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Courier">rcu_accelerate_cbs()</text> | ||
197 | <!-- Text --> | ||
198 | <!-- Text --> | ||
199 | <g | ||
200 | id="g3107" | ||
201 | transform="translate(747.5807,4700.8888)"> | ||
202 | <rect | ||
203 | id="rect112" | ||
204 | style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
205 | rx="0" | ||
206 | height="1370.8721" | ||
207 | width="2809.1992" | ||
208 | y="949.37109" | ||
209 | x="2084.55" /> | ||
210 | <rect | ||
211 | id="rect112-3" | ||
212 | style="fill:none;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" | ||
213 | rx="0" | ||
214 | height="1294.8468" | ||
215 | width="2809.1992" | ||
216 | y="1025.3964" | ||
217 | x="2084.55" /> | ||
218 | </g> | ||
219 | <text | ||
220 | xml:space="preserve" | ||
221 | x="2025.5763" | ||
222 | y="4825.2578" | ||
223 | font-style="normal" | ||
224 | font-weight="bold" | ||
225 | font-size="192" | ||
226 | id="text202-7" | ||
227 | style="font-size:192px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_prepare_for_idle()</text> | ||
228 | </g> | ||
229 | </svg> | ||
diff --git a/Documentation/RCU/stallwarn.txt b/Documentation/RCU/stallwarn.txt index 96a3d81837e1..a08f928c8557 100644 --- a/Documentation/RCU/stallwarn.txt +++ b/Documentation/RCU/stallwarn.txt | |||
@@ -40,7 +40,9 @@ o Booting Linux using a console connection that is too slow to | |||
40 | o Anything that prevents RCU's grace-period kthreads from running. | 40 | o Anything that prevents RCU's grace-period kthreads from running. |
41 | This can result in the "All QSes seen" console-log message. | 41 | This can result in the "All QSes seen" console-log message. |
42 | This message will include information on when the kthread last | 42 | This message will include information on when the kthread last |
43 | ran and how often it should be expected to run. | 43 | ran and how often it should be expected to run. It can also |
44 | result in the "rcu_.*kthread starved for" console-log message, | ||
45 | which will include additional debugging information. | ||
44 | 46 | ||
45 | o A CPU-bound real-time task in a CONFIG_PREEMPT kernel, which might | 47 | o A CPU-bound real-time task in a CONFIG_PREEMPT kernel, which might |
46 | happen to preempt a low-priority task in the middle of an RCU | 48 | happen to preempt a low-priority task in the middle of an RCU |
@@ -60,6 +62,20 @@ o A CPU-bound real-time task in a CONFIG_PREEMPT_RT kernel that | |||
60 | CONFIG_PREEMPT_RCU case, you might see stall-warning | 62 | CONFIG_PREEMPT_RCU case, you might see stall-warning |
61 | messages. | 63 | messages. |
62 | 64 | ||
65 | o A periodic interrupt whose handler takes longer than the time | ||
66 | interval between successive pairs of interrupts. This can | ||
67 | prevent RCU's kthreads and softirq handlers from running. | ||
68 | Note that certain high-overhead debugging options, for example | ||
69 | the function_graph tracer, can result in interrupt handler taking | ||
70 | considerably longer than normal, which can in turn result in | ||
71 | RCU CPU stall warnings. | ||
72 | |||
73 | o Testing a workload on a fast system, tuning the stall-warning | ||
74 | timeout down to just barely avoid RCU CPU stall warnings, and then | ||
75 | running the same workload with the same stall-warning timeout on a | ||
76 | slow system. Note that thermal throttling and on-demand governors | ||
77 | can cause a single system to be sometimes fast and sometimes slow! | ||
78 | |||
63 | o A hardware or software issue shuts off the scheduler-clock | 79 | o A hardware or software issue shuts off the scheduler-clock |
64 | interrupt on a CPU that is not in dyntick-idle mode. This | 80 | interrupt on a CPU that is not in dyntick-idle mode. This |
65 | problem really has happened, and seems to be most likely to | 81 | problem really has happened, and seems to be most likely to |
@@ -155,67 +171,32 @@ Interpreting RCU's CPU Stall-Detector "Splats" | |||
155 | For non-RCU-tasks flavors of RCU, when a CPU detects that it is stalling, | 171 | For non-RCU-tasks flavors of RCU, when a CPU detects that it is stalling, |
156 | it will print a message similar to the following: | 172 | it will print a message similar to the following: |
157 | 173 | ||
158 | INFO: rcu_sched_state detected stall on CPU 5 (t=2500 jiffies) | 174 | INFO: rcu_sched detected stalls on CPUs/tasks: |
159 | 175 | 2-...: (3 GPs behind) idle=06c/0/0 softirq=1453/1455 fqs=0 | |
160 | This message indicates that CPU 5 detected that it was causing a stall, | 176 | 16-...: (0 ticks this GP) idle=81c/0/0 softirq=764/764 fqs=0 |
161 | and that the stall was affecting RCU-sched. This message will normally be | 177 | (detected by 32, t=2603 jiffies, g=7073, c=7072, q=625) |
162 | followed by a stack dump of the offending CPU. On TREE_RCU kernel builds, | ||
163 | RCU and RCU-sched are implemented by the same underlying mechanism, | ||
164 | while on PREEMPT_RCU kernel builds, RCU is instead implemented | ||
165 | by rcu_preempt_state. | ||
166 | |||
167 | On the other hand, if the offending CPU fails to print out a stall-warning | ||
168 | message quickly enough, some other CPU will print a message similar to | ||
169 | the following: | ||
170 | |||
171 | INFO: rcu_bh_state detected stalls on CPUs/tasks: { 3 5 } (detected by 2, 2502 jiffies) | ||
172 | 178 | ||
173 | This message indicates that CPU 2 detected that CPUs 3 and 5 were both | 179 | This message indicates that CPU 32 detected that CPUs 2 and 16 were both |
174 | causing stalls, and that the stall was affecting RCU-bh. This message | 180 | causing stalls, and that the stall was affecting RCU-sched. This message |
175 | will normally be followed by stack dumps for each CPU. Please note that | 181 | will normally be followed by stack dumps for each CPU. Please note that |
176 | PREEMPT_RCU builds can be stalled by tasks as well as by CPUs, | 182 | PREEMPT_RCU builds can be stalled by tasks as well as by CPUs, and that |
177 | and that the tasks will be indicated by PID, for example, "P3421". | 183 | the tasks will be indicated by PID, for example, "P3421". It is even |
178 | It is even possible for a rcu_preempt_state stall to be caused by both | 184 | possible for a rcu_preempt_state stall to be caused by both CPUs -and- |
179 | CPUs -and- tasks, in which case the offending CPUs and tasks will all | 185 | tasks, in which case the offending CPUs and tasks will all be called |
180 | be called out in the list. | 186 | out in the list. |
181 | |||
182 | Finally, if the grace period ends just as the stall warning starts | ||
183 | printing, there will be a spurious stall-warning message: | ||
184 | |||
185 | INFO: rcu_bh_state detected stalls on CPUs/tasks: { } (detected by 4, 2502 jiffies) | ||
186 | |||
187 | This is rare, but does happen from time to time in real life. It is also | ||
188 | possible for a zero-jiffy stall to be flagged in this case, depending | ||
189 | on how the stall warning and the grace-period initialization happen to | ||
190 | interact. Please note that it is not possible to entirely eliminate this | ||
191 | sort of false positive without resorting to things like stop_machine(), | ||
192 | which is overkill for this sort of problem. | ||
193 | |||
194 | Recent kernels will print a long form of the stall-warning message: | ||
195 | |||
196 | INFO: rcu_preempt detected stall on CPU | ||
197 | 0: (63959 ticks this GP) idle=241/3fffffffffffffff/0 softirq=82/543 | ||
198 | (t=65000 jiffies) | ||
199 | |||
200 | In kernels with CONFIG_RCU_FAST_NO_HZ, more information is printed: | ||
201 | |||
202 | INFO: rcu_preempt detected stall on CPU | ||
203 | 0: (64628 ticks this GP) idle=dd5/3fffffffffffffff/0 softirq=82/543 last_accelerate: a345/d342 nonlazy_posted: 25 .D | ||
204 | (t=65000 jiffies) | ||
205 | 187 | ||
206 | The "(64628 ticks this GP)" indicates that this CPU has taken more | 188 | CPU 2's "(3 GPs behind)" indicates that this CPU has not interacted with |
207 | than 64,000 scheduling-clock interrupts during the current stalled | 189 | the RCU core for the past three grace periods. In contrast, CPU 16's "(0 |
208 | grace period. If the CPU was not yet aware of the current grace | 190 | ticks this GP)" indicates that this CPU has not taken any scheduling-clock |
209 | period (for example, if it was offline), then this part of the message | 191 | interrupts during the current stalled grace period. |
210 | indicates how many grace periods behind the CPU is. | ||
211 | 192 | ||
212 | The "idle=" portion of the message prints the dyntick-idle state. | 193 | The "idle=" portion of the message prints the dyntick-idle state. |
213 | The hex number before the first "/" is the low-order 12 bits of the | 194 | The hex number before the first "/" is the low-order 12 bits of the |
214 | dynticks counter, which will have an even-numbered value if the CPU is | 195 | dynticks counter, which will have an even-numbered value if the CPU |
215 | in dyntick-idle mode and an odd-numbered value otherwise. The hex | 196 | is in dyntick-idle mode and an odd-numbered value otherwise. The hex |
216 | number between the two "/"s is the value of the nesting, which will | 197 | number between the two "/"s is the value of the nesting, which will be |
217 | be a small positive number if in the idle loop and a very large positive | 198 | a small non-negative number if in the idle loop (as shown above) and a |
218 | number (as shown above) otherwise. | 199 | very large positive number otherwise. |
219 | 200 | ||
220 | The "softirq=" portion of the message tracks the number of RCU softirq | 201 | The "softirq=" portion of the message tracks the number of RCU softirq |
221 | handlers that the stalled CPU has executed. The number before the "/" | 202 | handlers that the stalled CPU has executed. The number before the "/" |
@@ -230,24 +211,72 @@ handlers are no longer able to execute on this CPU. This can happen if | |||
230 | the stalled CPU is spinning with interrupts are disabled, or, in -rt | 211 | the stalled CPU is spinning with interrupts are disabled, or, in -rt |
231 | kernels, if a high-priority process is starving RCU's softirq handler. | 212 | kernels, if a high-priority process is starving RCU's softirq handler. |
232 | 213 | ||
233 | For CONFIG_RCU_FAST_NO_HZ kernels, the "last_accelerate:" prints the | 214 | The "fps=" shows the number of force-quiescent-state idle/offline |
234 | low-order 16 bits (in hex) of the jiffies counter when this CPU last | 215 | detection passes that the grace-period kthread has made across this |
235 | invoked rcu_try_advance_all_cbs() from rcu_needs_cpu() or last invoked | 216 | CPU since the last time that this CPU noted the beginning of a grace |
236 | rcu_accelerate_cbs() from rcu_prepare_for_idle(). The "nonlazy_posted:" | 217 | period. |
237 | prints the number of non-lazy callbacks posted since the last call to | 218 | |
238 | rcu_needs_cpu(). Finally, an "L" indicates that there are currently | 219 | The "detected by" line indicates which CPU detected the stall (in this |
239 | no non-lazy callbacks ("." is printed otherwise, as shown above) and | 220 | case, CPU 32), how many jiffies have elapsed since the start of the |
240 | "D" indicates that dyntick-idle processing is enabled ("." is printed | 221 | grace period (in this case 2603), the number of the last grace period |
241 | otherwise, for example, if disabled via the "nohz=" kernel boot parameter). | 222 | to start and to complete (7073 and 7072, respectively), and an estimate |
223 | of the total number of RCU callbacks queued across all CPUs (625 in | ||
224 | this case). | ||
225 | |||
226 | In kernels with CONFIG_RCU_FAST_NO_HZ, more information is printed | ||
227 | for each CPU: | ||
228 | |||
229 | 0: (64628 ticks this GP) idle=dd5/3fffffffffffffff/0 softirq=82/543 last_accelerate: a345/d342 nonlazy_posted: 25 .D | ||
230 | |||
231 | The "last_accelerate:" prints the low-order 16 bits (in hex) of the | ||
232 | jiffies counter when this CPU last invoked rcu_try_advance_all_cbs() | ||
233 | from rcu_needs_cpu() or last invoked rcu_accelerate_cbs() from | ||
234 | rcu_prepare_for_idle(). The "nonlazy_posted:" prints the number | ||
235 | of non-lazy callbacks posted since the last call to rcu_needs_cpu(). | ||
236 | Finally, an "L" indicates that there are currently no non-lazy callbacks | ||
237 | ("." is printed otherwise, as shown above) and "D" indicates that | ||
238 | dyntick-idle processing is enabled ("." is printed otherwise, for example, | ||
239 | if disabled via the "nohz=" kernel boot parameter). | ||
240 | |||
241 | If the grace period ends just as the stall warning starts printing, | ||
242 | there will be a spurious stall-warning message, which will include | ||
243 | the following: | ||
244 | |||
245 | INFO: Stall ended before state dump start | ||
246 | |||
247 | This is rare, but does happen from time to time in real life. It is also | ||
248 | possible for a zero-jiffy stall to be flagged in this case, depending | ||
249 | on how the stall warning and the grace-period initialization happen to | ||
250 | interact. Please note that it is not possible to entirely eliminate this | ||
251 | sort of false positive without resorting to things like stop_machine(), | ||
252 | which is overkill for this sort of problem. | ||
253 | |||
254 | If all CPUs and tasks have passed through quiescent states, but the | ||
255 | grace period has nevertheless failed to end, the stall-warning splat | ||
256 | will include something like the following: | ||
257 | |||
258 | All QSes seen, last rcu_preempt kthread activity 23807 (4297905177-4297881370), jiffies_till_next_fqs=3, root ->qsmask 0x0 | ||
259 | |||
260 | The "23807" indicates that it has been more than 23 thousand jiffies | ||
261 | since the grace-period kthread ran. The "jiffies_till_next_fqs" | ||
262 | indicates how frequently that kthread should run, giving the number | ||
263 | of jiffies between force-quiescent-state scans, in this case three, | ||
264 | which is way less than 23807. Finally, the root rcu_node structure's | ||
265 | ->qsmask field is printed, which will normally be zero. | ||
242 | 266 | ||
243 | If the relevant grace-period kthread has been unable to run prior to | 267 | If the relevant grace-period kthread has been unable to run prior to |
244 | the stall warning, the following additional line is printed: | 268 | the stall warning, as was the case in the "All QSes seen" line above, |
269 | the following additional line is printed: | ||
245 | 270 | ||
246 | rcu_preempt kthread starved for 2023 jiffies! | 271 | kthread starved for 23807 jiffies! g7073 c7072 f0x0 RCU_GP_WAIT_FQS(3) ->state=0x1 |
247 | 272 | ||
248 | Starving the grace-period kthreads of CPU time can of course result in | 273 | Starving the grace-period kthreads of CPU time can of course result |
249 | RCU CPU stall warnings even when all CPUs and tasks have passed through | 274 | in RCU CPU stall warnings even when all CPUs and tasks have passed |
250 | the required quiescent states. | 275 | through the required quiescent states. The "g" and "c" numbers flag the |
276 | number of the last grace period started and completed, respectively, | ||
277 | the "f" precedes the ->gp_flags command to the grace-period kthread, | ||
278 | the "RCU_GP_WAIT_FQS" indicates that the kthread is waiting for a short | ||
279 | timeout, and the "state" precedes value of the task_struct ->state field. | ||
251 | 280 | ||
252 | 281 | ||
253 | Multiple Warnings From One Stall | 282 | Multiple Warnings From One Stall |
@@ -264,13 +293,28 @@ Stall Warnings for Expedited Grace Periods | |||
264 | If an expedited grace period detects a stall, it will place a message | 293 | If an expedited grace period detects a stall, it will place a message |
265 | like the following in dmesg: | 294 | like the following in dmesg: |
266 | 295 | ||
267 | INFO: rcu_sched detected expedited stalls on CPUs: { 1 2 6 } 26009 jiffies s: 1043 | 296 | INFO: rcu_sched detected expedited stalls on CPUs/tasks: { 7-... } 21119 jiffies s: 73 root: 0x2/. |
268 | 297 | ||
269 | This indicates that CPUs 1, 2, and 6 have failed to respond to a | 298 | This indicates that CPU 7 has failed to respond to a reschedule IPI. |
270 | reschedule IPI, that the expedited grace period has been going on for | 299 | The three periods (".") following the CPU number indicate that the CPU |
271 | 26,009 jiffies, and that the expedited grace-period sequence counter is | 300 | is online (otherwise the first period would instead have been "O"), |
272 | 1043. The fact that this last value is odd indicates that an expedited | 301 | that the CPU was online at the beginning of the expedited grace period |
273 | grace period is in flight. | 302 | (otherwise the second period would have instead been "o"), and that |
303 | the CPU has been online at least once since boot (otherwise, the third | ||
304 | period would instead have been "N"). The number before the "jiffies" | ||
305 | indicates that the expedited grace period has been going on for 21,119 | ||
306 | jiffies. The number following the "s:" indicates that the expedited | ||
307 | grace-period sequence counter is 73. The fact that this last value is | ||
308 | odd indicates that an expedited grace period is in flight. The number | ||
309 | following "root:" is a bitmask that indicates which children of the root | ||
310 | rcu_node structure correspond to CPUs and/or tasks that are blocking the | ||
311 | current expedited grace period. If the tree had more than one level, | ||
312 | additional hex numbers would be printed for the states of the other | ||
313 | rcu_node structures in the tree. | ||
314 | |||
315 | As with normal grace periods, PREEMPT_RCU builds can be stalled by | ||
316 | tasks as well as by CPUs, and that the tasks will be indicated by PID, | ||
317 | for example, "P3421". | ||
274 | 318 | ||
275 | It is entirely possible to see stall warnings from normal and from | 319 | It is entirely possible to see stall warnings from normal and from |
276 | expedited grace periods at about the same time from the same run. | 320 | expedited grace periods at about the same time during the same run. |
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 55cfff9d59bb..4af4dd46cbd9 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt | |||
@@ -3542,6 +3542,9 @@ | |||
3542 | rcutorture.stall_cpu_holdoff= [KNL] | 3542 | rcutorture.stall_cpu_holdoff= [KNL] |
3543 | Time to wait (s) after boot before inducing stall. | 3543 | Time to wait (s) after boot before inducing stall. |
3544 | 3544 | ||
3545 | rcutorture.stall_cpu_irqsoff= [KNL] | ||
3546 | Disable interrupts while stalling if set. | ||
3547 | |||
3545 | rcutorture.stat_interval= [KNL] | 3548 | rcutorture.stat_interval= [KNL] |
3546 | Time (s) between statistics printk()s. | 3549 | Time (s) between statistics printk()s. |
3547 | 3550 | ||
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index b759a60624fd..519940ec767f 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt | |||
@@ -53,7 +53,7 @@ CONTENTS | |||
53 | - SMP barrier pairing. | 53 | - SMP barrier pairing. |
54 | - Examples of memory barrier sequences. | 54 | - Examples of memory barrier sequences. |
55 | - Read memory barriers vs load speculation. | 55 | - Read memory barriers vs load speculation. |
56 | - Transitivity | 56 | - Multicopy atomicity. |
57 | 57 | ||
58 | (*) Explicit kernel barriers. | 58 | (*) Explicit kernel barriers. |
59 | 59 | ||
@@ -383,8 +383,8 @@ Memory barriers come in four basic varieties: | |||
383 | to have any effect on loads. | 383 | to have any effect on loads. |
384 | 384 | ||
385 | A CPU can be viewed as committing a sequence of store operations to the | 385 | A CPU can be viewed as committing a sequence of store operations to the |
386 | memory system as time progresses. All stores before a write barrier will | 386 | memory system as time progresses. All stores _before_ a write barrier |
387 | occur in the sequence _before_ all the stores after the write barrier. | 387 | will occur _before_ all the stores after the write barrier. |
388 | 388 | ||
389 | [!] Note that write barriers should normally be paired with read or data | 389 | [!] Note that write barriers should normally be paired with read or data |
390 | dependency barriers; see the "SMP barrier pairing" subsection. | 390 | dependency barriers; see the "SMP barrier pairing" subsection. |
@@ -635,6 +635,11 @@ can be used to record rare error conditions and the like, and the CPUs' | |||
635 | naturally occurring ordering prevents such records from being lost. | 635 | naturally occurring ordering prevents such records from being lost. |
636 | 636 | ||
637 | 637 | ||
638 | Note well that the ordering provided by a data dependency is local to | ||
639 | the CPU containing it. See the section on "Multicopy atomicity" for | ||
640 | more information. | ||
641 | |||
642 | |||
638 | The data dependency barrier is very important to the RCU system, | 643 | The data dependency barrier is very important to the RCU system, |
639 | for example. See rcu_assign_pointer() and rcu_dereference() in | 644 | for example. See rcu_assign_pointer() and rcu_dereference() in |
640 | include/linux/rcupdate.h. This permits the current target of an RCU'd | 645 | include/linux/rcupdate.h. This permits the current target of an RCU'd |
@@ -851,38 +856,11 @@ In short, control dependencies apply only to the stores in the then-clause | |||
851 | and else-clause of the if-statement in question (including functions | 856 | and else-clause of the if-statement in question (including functions |
852 | invoked by those two clauses), not to code following that if-statement. | 857 | invoked by those two clauses), not to code following that if-statement. |
853 | 858 | ||
854 | Finally, control dependencies do -not- provide transitivity. This is | ||
855 | demonstrated by two related examples, with the initial values of | ||
856 | 'x' and 'y' both being zero: | ||
857 | |||
858 | CPU 0 CPU 1 | ||
859 | ======================= ======================= | ||
860 | r1 = READ_ONCE(x); r2 = READ_ONCE(y); | ||
861 | if (r1 > 0) if (r2 > 0) | ||
862 | WRITE_ONCE(y, 1); WRITE_ONCE(x, 1); | ||
863 | |||
864 | assert(!(r1 == 1 && r2 == 1)); | ||
865 | 859 | ||
866 | The above two-CPU example will never trigger the assert(). However, | 860 | Note well that the ordering provided by a control dependency is local |
867 | if control dependencies guaranteed transitivity (which they do not), | 861 | to the CPU containing it. See the section on "Multicopy atomicity" |
868 | then adding the following CPU would guarantee a related assertion: | 862 | for more information. |
869 | 863 | ||
870 | CPU 2 | ||
871 | ===================== | ||
872 | WRITE_ONCE(x, 2); | ||
873 | |||
874 | assert(!(r1 == 2 && r2 == 1 && x == 2)); /* FAILS!!! */ | ||
875 | |||
876 | But because control dependencies do -not- provide transitivity, the above | ||
877 | assertion can fail after the combined three-CPU example completes. If you | ||
878 | need the three-CPU example to provide ordering, you will need smp_mb() | ||
879 | between the loads and stores in the CPU 0 and CPU 1 code fragments, | ||
880 | that is, just before or just after the "if" statements. Furthermore, | ||
881 | the original two-CPU example is very fragile and should be avoided. | ||
882 | |||
883 | These two examples are the LB and WWC litmus tests from this paper: | ||
884 | http://www.cl.cam.ac.uk/users/pes20/ppc-supplemental/test6.pdf and this | ||
885 | site: https://www.cl.cam.ac.uk/~pes20/ppcmem/index.html. | ||
886 | 864 | ||
887 | In summary: | 865 | In summary: |
888 | 866 | ||
@@ -922,8 +900,8 @@ In summary: | |||
922 | 900 | ||
923 | (*) Control dependencies pair normally with other types of barriers. | 901 | (*) Control dependencies pair normally with other types of barriers. |
924 | 902 | ||
925 | (*) Control dependencies do -not- provide transitivity. If you | 903 | (*) Control dependencies do -not- provide multicopy atomicity. If you |
926 | need transitivity, use smp_mb(). | 904 | need all the CPUs to see a given store at the same time, use smp_mb(). |
927 | 905 | ||
928 | (*) Compilers do not understand control dependencies. It is therefore | 906 | (*) Compilers do not understand control dependencies. It is therefore |
929 | your job to ensure that they do not break your code. | 907 | your job to ensure that they do not break your code. |
@@ -936,13 +914,14 @@ When dealing with CPU-CPU interactions, certain types of memory barrier should | |||
936 | always be paired. A lack of appropriate pairing is almost certainly an error. | 914 | always be paired. A lack of appropriate pairing is almost certainly an error. |
937 | 915 | ||
938 | General barriers pair with each other, though they also pair with most | 916 | General barriers pair with each other, though they also pair with most |
939 | other types of barriers, albeit without transitivity. An acquire barrier | 917 | other types of barriers, albeit without multicopy atomicity. An acquire |
940 | pairs with a release barrier, but both may also pair with other barriers, | 918 | barrier pairs with a release barrier, but both may also pair with other |
941 | including of course general barriers. A write barrier pairs with a data | 919 | barriers, including of course general barriers. A write barrier pairs |
942 | dependency barrier, a control dependency, an acquire barrier, a release | 920 | with a data dependency barrier, a control dependency, an acquire barrier, |
943 | barrier, a read barrier, or a general barrier. Similarly a read barrier, | 921 | a release barrier, a read barrier, or a general barrier. Similarly a |
944 | control dependency, or a data dependency barrier pairs with a write | 922 | read barrier, control dependency, or a data dependency barrier pairs |
945 | barrier, an acquire barrier, a release barrier, or a general barrier: | 923 | with a write barrier, an acquire barrier, a release barrier, or a |
924 | general barrier: | ||
946 | 925 | ||
947 | CPU 1 CPU 2 | 926 | CPU 1 CPU 2 |
948 | =============== =============== | 927 | =============== =============== |
@@ -968,7 +947,7 @@ Or even: | |||
968 | =============== =============================== | 947 | =============== =============================== |
969 | r1 = READ_ONCE(y); | 948 | r1 = READ_ONCE(y); |
970 | <general barrier> | 949 | <general barrier> |
971 | WRITE_ONCE(y, 1); if (r2 = READ_ONCE(x)) { | 950 | WRITE_ONCE(x, 1); if (r2 = READ_ONCE(x)) { |
972 | <implicit control dependency> | 951 | <implicit control dependency> |
973 | WRITE_ONCE(y, 1); | 952 | WRITE_ONCE(y, 1); |
974 | } | 953 | } |
@@ -1359,64 +1338,79 @@ the speculation will be cancelled and the value reloaded: | |||
1359 | retrieved : : +-------+ | 1338 | retrieved : : +-------+ |
1360 | 1339 | ||
1361 | 1340 | ||
1362 | TRANSITIVITY | 1341 | MULTICOPY ATOMICITY |
1363 | ------------ | 1342 | -------------------- |
1343 | |||
1344 | Multicopy atomicity is a deeply intuitive notion about ordering that is | ||
1345 | not always provided by real computer systems, namely that a given store | ||
1346 | becomes visible at the same time to all CPUs, or, alternatively, that all | ||
1347 | CPUs agree on the order in which all stores become visible. However, | ||
1348 | support of full multicopy atomicity would rule out valuable hardware | ||
1349 | optimizations, so a weaker form called ``other multicopy atomicity'' | ||
1350 | instead guarantees only that a given store becomes visible at the same | ||
1351 | time to all -other- CPUs. The remainder of this document discusses this | ||
1352 | weaker form, but for brevity will call it simply ``multicopy atomicity''. | ||
1364 | 1353 | ||
1365 | Transitivity is a deeply intuitive notion about ordering that is not | 1354 | The following example demonstrates multicopy atomicity: |
1366 | always provided by real computer systems. The following example | ||
1367 | demonstrates transitivity: | ||
1368 | 1355 | ||
1369 | CPU 1 CPU 2 CPU 3 | 1356 | CPU 1 CPU 2 CPU 3 |
1370 | ======================= ======================= ======================= | 1357 | ======================= ======================= ======================= |
1371 | { X = 0, Y = 0 } | 1358 | { X = 0, Y = 0 } |
1372 | STORE X=1 LOAD X STORE Y=1 | 1359 | STORE X=1 r1=LOAD X (reads 1) LOAD Y (reads 1) |
1373 | <general barrier> <general barrier> | 1360 | <general barrier> <read barrier> |
1374 | LOAD Y LOAD X | 1361 | STORE Y=r1 LOAD X |
1375 | 1362 | ||
1376 | Suppose that CPU 2's load from X returns 1 and its load from Y returns 0. | 1363 | Suppose that CPU 2's load from X returns 1, which it then stores to Y, |
1377 | This indicates that CPU 2's load from X in some sense follows CPU 1's | 1364 | and CPU 3's load from Y returns 1. This indicates that CPU 1's store |
1378 | store to X and that CPU 2's load from Y in some sense preceded CPU 3's | 1365 | to X precedes CPU 2's load from X and that CPU 2's store to Y precedes |
1379 | store to Y. The question is then "Can CPU 3's load from X return 0?" | 1366 | CPU 3's load from Y. In addition, the memory barriers guarantee that |
1380 | 1367 | CPU 2 executes its load before its store, and CPU 3 loads from Y before | |
1381 | Because CPU 2's load from X in some sense came after CPU 1's store, it | 1368 | it loads from X. The question is then "Can CPU 3's load from X return 0?" |
1369 | |||
1370 | Because CPU 3's load from X in some sense comes after CPU 2's load, it | ||
1382 | is natural to expect that CPU 3's load from X must therefore return 1. | 1371 | is natural to expect that CPU 3's load from X must therefore return 1. |
1383 | This expectation is an example of transitivity: if a load executing on | 1372 | This expectation follows from multicopy atomicity: if a load executing |
1384 | CPU A follows a load from the same variable executing on CPU B, then | 1373 | on CPU B follows a load from the same variable executing on CPU A (and |
1385 | CPU A's load must either return the same value that CPU B's load did, | 1374 | CPU A did not originally store the value which it read), then on |
1386 | or must return some later value. | 1375 | multicopy-atomic systems, CPU B's load must return either the same value |
1387 | 1376 | that CPU A's load did or some later value. However, the Linux kernel | |
1388 | In the Linux kernel, use of general memory barriers guarantees | 1377 | does not require systems to be multicopy atomic. |
1389 | transitivity. Therefore, in the above example, if CPU 2's load from X | 1378 | |
1390 | returns 1 and its load from Y returns 0, then CPU 3's load from X must | 1379 | The use of a general memory barrier in the example above compensates |
1391 | also return 1. | 1380 | for any lack of multicopy atomicity. In the example, if CPU 2's load |
1392 | 1381 | from X returns 1 and CPU 3's load from Y returns 1, then CPU 3's load | |
1393 | However, transitivity is -not- guaranteed for read or write barriers. | 1382 | from X must indeed also return 1. |
1394 | For example, suppose that CPU 2's general barrier in the above example | 1383 | |
1395 | is changed to a read barrier as shown below: | 1384 | However, dependencies, read barriers, and write barriers are not always |
1385 | able to compensate for non-multicopy atomicity. For example, suppose | ||
1386 | that CPU 2's general barrier is removed from the above example, leaving | ||
1387 | only the data dependency shown below: | ||
1396 | 1388 | ||
1397 | CPU 1 CPU 2 CPU 3 | 1389 | CPU 1 CPU 2 CPU 3 |
1398 | ======================= ======================= ======================= | 1390 | ======================= ======================= ======================= |
1399 | { X = 0, Y = 0 } | 1391 | { X = 0, Y = 0 } |
1400 | STORE X=1 LOAD X STORE Y=1 | 1392 | STORE X=1 r1=LOAD X (reads 1) LOAD Y (reads 1) |
1401 | <read barrier> <general barrier> | 1393 | <data dependency> <read barrier> |
1402 | LOAD Y LOAD X | 1394 | STORE Y=r1 LOAD X (reads 0) |
1403 | 1395 | ||
1404 | This substitution destroys transitivity: in this example, it is perfectly | 1396 | This substitution allows non-multicopy atomicity to run rampant: in |
1405 | legal for CPU 2's load from X to return 1, its load from Y to return 0, | 1397 | this example, it is perfectly legal for CPU 2's load from X to return 1, |
1406 | and CPU 3's load from X to return 0. | 1398 | CPU 3's load from Y to return 1, and its load from X to return 0. |
1407 | 1399 | ||
1408 | The key point is that although CPU 2's read barrier orders its pair | 1400 | The key point is that although CPU 2's data dependency orders its load |
1409 | of loads, it does not guarantee to order CPU 1's store. Therefore, if | 1401 | and store, it does not guarantee to order CPU 1's store. Thus, if this |
1410 | this example runs on a system where CPUs 1 and 2 share a store buffer | 1402 | example runs on a non-multicopy-atomic system where CPUs 1 and 2 share a |
1411 | or a level of cache, CPU 2 might have early access to CPU 1's writes. | 1403 | store buffer or a level of cache, CPU 2 might have early access to CPU 1's |
1412 | General barriers are therefore required to ensure that all CPUs agree | 1404 | writes. General barriers are therefore required to ensure that all CPUs |
1413 | on the combined order of CPU 1's and CPU 2's accesses. | 1405 | agree on the combined order of multiple accesses. |
1414 | 1406 | ||
1415 | General barriers provide "global transitivity", so that all CPUs will | 1407 | General barriers can compensate not only for non-multicopy atomicity, |
1416 | agree on the order of operations. In contrast, a chain of release-acquire | 1408 | but can also generate additional ordering that can ensure that -all- |
1417 | pairs provides only "local transitivity", so that only those CPUs on | 1409 | CPUs will perceive the same order of -all- operations. In contrast, a |
1418 | the chain are guaranteed to agree on the combined order of the accesses. | 1410 | chain of release-acquire pairs do not provide this additional ordering, |
1419 | For example, switching to C code in deference to Herman Hollerith: | 1411 | which means that only those CPUs on the chain are guaranteed to agree |
1412 | on the combined order of the accesses. For example, switching to C code | ||
1413 | in deference to the ghost of Herman Hollerith: | ||
1420 | 1414 | ||
1421 | int u, v, x, y, z; | 1415 | int u, v, x, y, z; |
1422 | 1416 | ||
@@ -1448,9 +1442,9 @@ For example, switching to C code in deference to Herman Hollerith: | |||
1448 | r3 = READ_ONCE(u); | 1442 | r3 = READ_ONCE(u); |
1449 | } | 1443 | } |
1450 | 1444 | ||
1451 | Because cpu0(), cpu1(), and cpu2() participate in a local transitive | 1445 | Because cpu0(), cpu1(), and cpu2() participate in a chain of |
1452 | chain of smp_store_release()/smp_load_acquire() pairs, the following | 1446 | smp_store_release()/smp_load_acquire() pairs, the following outcome |
1453 | outcome is prohibited: | 1447 | is prohibited: |
1454 | 1448 | ||
1455 | r0 == 1 && r1 == 1 && r2 == 1 | 1449 | r0 == 1 && r1 == 1 && r2 == 1 |
1456 | 1450 | ||
@@ -1460,9 +1454,9 @@ outcome is prohibited: | |||
1460 | 1454 | ||
1461 | r1 == 1 && r5 == 0 | 1455 | r1 == 1 && r5 == 0 |
1462 | 1456 | ||
1463 | However, the transitivity of release-acquire is local to the participating | 1457 | However, the ordering provided by a release-acquire chain is local |
1464 | CPUs and does not apply to cpu3(). Therefore, the following outcome | 1458 | to the CPUs participating in that chain and does not apply to cpu3(), |
1465 | is possible: | 1459 | at least aside from stores. Therefore, the following outcome is possible: |
1466 | 1460 | ||
1467 | r0 == 0 && r1 == 1 && r2 == 1 && r3 == 0 && r4 == 0 | 1461 | r0 == 0 && r1 == 1 && r2 == 1 && r3 == 0 && r4 == 0 |
1468 | 1462 | ||
@@ -1490,8 +1484,8 @@ following outcome is possible: | |||
1490 | Note that this outcome can happen even on a mythical sequentially | 1484 | Note that this outcome can happen even on a mythical sequentially |
1491 | consistent system where nothing is ever reordered. | 1485 | consistent system where nothing is ever reordered. |
1492 | 1486 | ||
1493 | To reiterate, if your code requires global transitivity, use general | 1487 | To reiterate, if your code requires full ordering of all operations, |
1494 | barriers throughout. | 1488 | use general barriers throughout. |
1495 | 1489 | ||
1496 | 1490 | ||
1497 | ======================== | 1491 | ======================== |
@@ -3101,6 +3095,9 @@ AMD64 Architecture Programmer's Manual Volume 2: System Programming | |||
3101 | Chapter 7.1: Memory-Access Ordering | 3095 | Chapter 7.1: Memory-Access Ordering |
3102 | Chapter 7.4: Buffering and Combining Memory Writes | 3096 | Chapter 7.4: Buffering and Combining Memory Writes |
3103 | 3097 | ||
3098 | ARM Architecture Reference Manual (ARMv8, for ARMv8-A architecture profile) | ||
3099 | Chapter B2: The AArch64 Application Level Memory Model | ||
3100 | |||
3104 | IA-32 Intel Architecture Software Developer's Manual, Volume 3: | 3101 | IA-32 Intel Architecture Software Developer's Manual, Volume 3: |
3105 | System Programming Guide | 3102 | System Programming Guide |
3106 | Chapter 7.1: Locked Atomic Operations | 3103 | Chapter 7.1: Locked Atomic Operations |
@@ -3112,6 +3109,8 @@ The SPARC Architecture Manual, Version 9 | |||
3112 | Appendix D: Formal Specification of the Memory Models | 3109 | Appendix D: Formal Specification of the Memory Models |
3113 | Appendix J: Programming with the Memory Models | 3110 | Appendix J: Programming with the Memory Models |
3114 | 3111 | ||
3112 | Storage in the PowerPC (Stone and Fitzgerald) | ||
3113 | |||
3115 | UltraSPARC Programmer Reference Manual | 3114 | UltraSPARC Programmer Reference Manual |
3116 | Chapter 5: Memory Accesses and Cacheability | 3115 | Chapter 5: Memory Accesses and Cacheability |
3117 | Chapter 15: Sparc-V9 Memory Models | 3116 | Chapter 15: Sparc-V9 Memory Models |
diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h index 9270d73ea682..0e81035b678f 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h | |||
@@ -34,10 +34,7 @@ void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *)) | |||
34 | #define DEFINE_IRQ_WORK(name, _f) struct irq_work name = { .func = (_f), } | 34 | #define DEFINE_IRQ_WORK(name, _f) struct irq_work name = { .func = (_f), } |
35 | 35 | ||
36 | bool irq_work_queue(struct irq_work *work); | 36 | bool irq_work_queue(struct irq_work *work); |
37 | |||
38 | #ifdef CONFIG_SMP | ||
39 | bool irq_work_queue_on(struct irq_work *work, int cpu); | 37 | bool irq_work_queue_on(struct irq_work *work, int cpu); |
40 | #endif | ||
41 | 38 | ||
42 | void irq_work_tick(void); | 39 | void irq_work_tick(void); |
43 | void irq_work_sync(struct irq_work *work); | 40 | void irq_work_sync(struct irq_work *work); |
diff --git a/kernel/irq_work.c b/kernel/irq_work.c index bcf107ce0854..9f20f6c72579 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c | |||
@@ -56,7 +56,6 @@ void __weak arch_irq_work_raise(void) | |||
56 | */ | 56 | */ |
57 | } | 57 | } |
58 | 58 | ||
59 | #ifdef CONFIG_SMP | ||
60 | /* | 59 | /* |
61 | * Enqueue the irq_work @work on @cpu unless it's already pending | 60 | * Enqueue the irq_work @work on @cpu unless it's already pending |
62 | * somewhere. | 61 | * somewhere. |
@@ -68,6 +67,8 @@ bool irq_work_queue_on(struct irq_work *work, int cpu) | |||
68 | /* All work should have been flushed before going offline */ | 67 | /* All work should have been flushed before going offline */ |
69 | WARN_ON_ONCE(cpu_is_offline(cpu)); | 68 | WARN_ON_ONCE(cpu_is_offline(cpu)); |
70 | 69 | ||
70 | #ifdef CONFIG_SMP | ||
71 | |||
71 | /* Arch remote IPI send/receive backend aren't NMI safe */ | 72 | /* Arch remote IPI send/receive backend aren't NMI safe */ |
72 | WARN_ON_ONCE(in_nmi()); | 73 | WARN_ON_ONCE(in_nmi()); |
73 | 74 | ||
@@ -78,10 +79,12 @@ bool irq_work_queue_on(struct irq_work *work, int cpu) | |||
78 | if (llist_add(&work->llnode, &per_cpu(raised_list, cpu))) | 79 | if (llist_add(&work->llnode, &per_cpu(raised_list, cpu))) |
79 | arch_send_call_function_single_ipi(cpu); | 80 | arch_send_call_function_single_ipi(cpu); |
80 | 81 | ||
82 | #else /* #ifdef CONFIG_SMP */ | ||
83 | irq_work_queue(work); | ||
84 | #endif /* #else #ifdef CONFIG_SMP */ | ||
85 | |||
81 | return true; | 86 | return true; |
82 | } | 87 | } |
83 | EXPORT_SYMBOL_GPL(irq_work_queue_on); | ||
84 | #endif | ||
85 | 88 | ||
86 | /* Enqueue the irq work @work on the current CPU */ | 89 | /* Enqueue the irq work @work on the current CPU */ |
87 | bool irq_work_queue(struct irq_work *work) | 90 | bool irq_work_queue(struct irq_work *work) |
diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h index e4b43fef89f5..59c471de342a 100644 --- a/kernel/rcu/rcu.h +++ b/kernel/rcu/rcu.h | |||
@@ -203,6 +203,21 @@ static inline bool __rcu_reclaim(const char *rn, struct rcu_head *head) | |||
203 | extern int rcu_cpu_stall_suppress; | 203 | extern int rcu_cpu_stall_suppress; |
204 | int rcu_jiffies_till_stall_check(void); | 204 | int rcu_jiffies_till_stall_check(void); |
205 | 205 | ||
206 | #define rcu_ftrace_dump_stall_suppress() \ | ||
207 | do { \ | ||
208 | if (!rcu_cpu_stall_suppress) \ | ||
209 | rcu_cpu_stall_suppress = 3; \ | ||
210 | } while (0) | ||
211 | |||
212 | #define rcu_ftrace_dump_stall_unsuppress() \ | ||
213 | do { \ | ||
214 | if (rcu_cpu_stall_suppress == 3) \ | ||
215 | rcu_cpu_stall_suppress = 0; \ | ||
216 | } while (0) | ||
217 | |||
218 | #else /* #endif #ifdef CONFIG_RCU_STALL_COMMON */ | ||
219 | #define rcu_ftrace_dump_stall_suppress() | ||
220 | #define rcu_ftrace_dump_stall_unsuppress() | ||
206 | #endif /* #ifdef CONFIG_RCU_STALL_COMMON */ | 221 | #endif /* #ifdef CONFIG_RCU_STALL_COMMON */ |
207 | 222 | ||
208 | /* | 223 | /* |
@@ -220,8 +235,12 @@ do { \ | |||
220 | static atomic_t ___rfd_beenhere = ATOMIC_INIT(0); \ | 235 | static atomic_t ___rfd_beenhere = ATOMIC_INIT(0); \ |
221 | \ | 236 | \ |
222 | if (!atomic_read(&___rfd_beenhere) && \ | 237 | if (!atomic_read(&___rfd_beenhere) && \ |
223 | !atomic_xchg(&___rfd_beenhere, 1)) \ | 238 | !atomic_xchg(&___rfd_beenhere, 1)) { \ |
239 | tracing_off(); \ | ||
240 | rcu_ftrace_dump_stall_suppress(); \ | ||
224 | ftrace_dump(oops_dump_mode); \ | 241 | ftrace_dump(oops_dump_mode); \ |
242 | rcu_ftrace_dump_stall_unsuppress(); \ | ||
243 | } \ | ||
225 | } while (0) | 244 | } while (0) |
226 | 245 | ||
227 | void rcu_early_boot_tests(void); | 246 | void rcu_early_boot_tests(void); |
diff --git a/kernel/rcu/rcu_segcblist.c b/kernel/rcu/rcu_segcblist.c index 7649fcd2c4c7..88cba7c2956c 100644 --- a/kernel/rcu/rcu_segcblist.c +++ b/kernel/rcu/rcu_segcblist.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/types.h> | 23 | #include <linux/types.h> |
24 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
25 | #include <linux/interrupt.h> | 25 | #include <linux/interrupt.h> |
26 | #include <linux/rcupdate.h> | ||
26 | 27 | ||
27 | #include "rcu_segcblist.h" | 28 | #include "rcu_segcblist.h" |
28 | 29 | ||
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 45f2ffbc1e78..362eb2f78b3c 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c | |||
@@ -51,6 +51,7 @@ | |||
51 | #include <asm/byteorder.h> | 51 | #include <asm/byteorder.h> |
52 | #include <linux/torture.h> | 52 | #include <linux/torture.h> |
53 | #include <linux/vmalloc.h> | 53 | #include <linux/vmalloc.h> |
54 | #include <linux/sched/debug.h> | ||
54 | 55 | ||
55 | #include "rcu.h" | 56 | #include "rcu.h" |
56 | 57 | ||
@@ -89,6 +90,7 @@ torture_param(int, shutdown_secs, 0, "Shutdown time (s), <= zero to disable."); | |||
89 | torture_param(int, stall_cpu, 0, "Stall duration (s), zero to disable."); | 90 | torture_param(int, stall_cpu, 0, "Stall duration (s), zero to disable."); |
90 | torture_param(int, stall_cpu_holdoff, 10, | 91 | torture_param(int, stall_cpu_holdoff, 10, |
91 | "Time to wait before starting stall (s)."); | 92 | "Time to wait before starting stall (s)."); |
93 | torture_param(int, stall_cpu_irqsoff, 0, "Disable interrupts while stalling."); | ||
92 | torture_param(int, stat_interval, 60, | 94 | torture_param(int, stat_interval, 60, |
93 | "Number of seconds between stats printk()s"); | 95 | "Number of seconds between stats printk()s"); |
94 | torture_param(int, stutter, 5, "Number of seconds to run/halt test"); | 96 | torture_param(int, stutter, 5, "Number of seconds to run/halt test"); |
@@ -1239,6 +1241,7 @@ rcu_torture_stats_print(void) | |||
1239 | long pipesummary[RCU_TORTURE_PIPE_LEN + 1] = { 0 }; | 1241 | long pipesummary[RCU_TORTURE_PIPE_LEN + 1] = { 0 }; |
1240 | long batchsummary[RCU_TORTURE_PIPE_LEN + 1] = { 0 }; | 1242 | long batchsummary[RCU_TORTURE_PIPE_LEN + 1] = { 0 }; |
1241 | static unsigned long rtcv_snap = ULONG_MAX; | 1243 | static unsigned long rtcv_snap = ULONG_MAX; |
1244 | static bool splatted; | ||
1242 | struct task_struct *wtp; | 1245 | struct task_struct *wtp; |
1243 | 1246 | ||
1244 | for_each_possible_cpu(cpu) { | 1247 | for_each_possible_cpu(cpu) { |
@@ -1324,6 +1327,10 @@ rcu_torture_stats_print(void) | |||
1324 | gpnum, completed, flags, | 1327 | gpnum, completed, flags, |
1325 | wtp == NULL ? ~0UL : wtp->state, | 1328 | wtp == NULL ? ~0UL : wtp->state, |
1326 | wtp == NULL ? -1 : (int)task_cpu(wtp)); | 1329 | wtp == NULL ? -1 : (int)task_cpu(wtp)); |
1330 | if (!splatted && wtp) { | ||
1331 | sched_show_task(wtp); | ||
1332 | splatted = true; | ||
1333 | } | ||
1327 | show_rcu_gp_kthreads(); | 1334 | show_rcu_gp_kthreads(); |
1328 | rcu_ftrace_dump(DUMP_ALL); | 1335 | rcu_ftrace_dump(DUMP_ALL); |
1329 | } | 1336 | } |
@@ -1357,7 +1364,7 @@ rcu_torture_print_module_parms(struct rcu_torture_ops *cur_ops, const char *tag) | |||
1357 | "fqs_duration=%d fqs_holdoff=%d fqs_stutter=%d " | 1364 | "fqs_duration=%d fqs_holdoff=%d fqs_stutter=%d " |
1358 | "test_boost=%d/%d test_boost_interval=%d " | 1365 | "test_boost=%d/%d test_boost_interval=%d " |
1359 | "test_boost_duration=%d shutdown_secs=%d " | 1366 | "test_boost_duration=%d shutdown_secs=%d " |
1360 | "stall_cpu=%d stall_cpu_holdoff=%d " | 1367 | "stall_cpu=%d stall_cpu_holdoff=%d stall_cpu_irqsoff=%d " |
1361 | "n_barrier_cbs=%d " | 1368 | "n_barrier_cbs=%d " |
1362 | "onoff_interval=%d onoff_holdoff=%d\n", | 1369 | "onoff_interval=%d onoff_holdoff=%d\n", |
1363 | torture_type, tag, nrealreaders, nfakewriters, | 1370 | torture_type, tag, nrealreaders, nfakewriters, |
@@ -1365,7 +1372,7 @@ rcu_torture_print_module_parms(struct rcu_torture_ops *cur_ops, const char *tag) | |||
1365 | stutter, irqreader, fqs_duration, fqs_holdoff, fqs_stutter, | 1372 | stutter, irqreader, fqs_duration, fqs_holdoff, fqs_stutter, |
1366 | test_boost, cur_ops->can_boost, | 1373 | test_boost, cur_ops->can_boost, |
1367 | test_boost_interval, test_boost_duration, shutdown_secs, | 1374 | test_boost_interval, test_boost_duration, shutdown_secs, |
1368 | stall_cpu, stall_cpu_holdoff, | 1375 | stall_cpu, stall_cpu_holdoff, stall_cpu_irqsoff, |
1369 | n_barrier_cbs, | 1376 | n_barrier_cbs, |
1370 | onoff_interval, onoff_holdoff); | 1377 | onoff_interval, onoff_holdoff); |
1371 | } | 1378 | } |
@@ -1430,12 +1437,19 @@ static int rcu_torture_stall(void *args) | |||
1430 | if (!kthread_should_stop()) { | 1437 | if (!kthread_should_stop()) { |
1431 | stop_at = get_seconds() + stall_cpu; | 1438 | stop_at = get_seconds() + stall_cpu; |
1432 | /* RCU CPU stall is expected behavior in following code. */ | 1439 | /* RCU CPU stall is expected behavior in following code. */ |
1433 | pr_alert("rcu_torture_stall start.\n"); | ||
1434 | rcu_read_lock(); | 1440 | rcu_read_lock(); |
1435 | preempt_disable(); | 1441 | if (stall_cpu_irqsoff) |
1442 | local_irq_disable(); | ||
1443 | else | ||
1444 | preempt_disable(); | ||
1445 | pr_alert("rcu_torture_stall start on CPU %d.\n", | ||
1446 | smp_processor_id()); | ||
1436 | while (ULONG_CMP_LT(get_seconds(), stop_at)) | 1447 | while (ULONG_CMP_LT(get_seconds(), stop_at)) |
1437 | continue; /* Induce RCU CPU stall warning. */ | 1448 | continue; /* Induce RCU CPU stall warning. */ |
1438 | preempt_enable(); | 1449 | if (stall_cpu_irqsoff) |
1450 | local_irq_enable(); | ||
1451 | else | ||
1452 | preempt_enable(); | ||
1439 | rcu_read_unlock(); | 1453 | rcu_read_unlock(); |
1440 | pr_alert("rcu_torture_stall end.\n"); | 1454 | pr_alert("rcu_torture_stall end.\n"); |
1441 | } | 1455 | } |
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 3e3650e94ae6..e4fe06d42385 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c | |||
@@ -534,8 +534,8 @@ module_param(rcu_kick_kthreads, bool, 0644); | |||
534 | * How long the grace period must be before we start recruiting | 534 | * How long the grace period must be before we start recruiting |
535 | * quiescent-state help from rcu_note_context_switch(). | 535 | * quiescent-state help from rcu_note_context_switch(). |
536 | */ | 536 | */ |
537 | static ulong jiffies_till_sched_qs = HZ / 20; | 537 | static ulong jiffies_till_sched_qs = HZ / 10; |
538 | module_param(jiffies_till_sched_qs, ulong, 0644); | 538 | module_param(jiffies_till_sched_qs, ulong, 0444); |
539 | 539 | ||
540 | static bool rcu_start_gp_advanced(struct rcu_state *rsp, struct rcu_node *rnp, | 540 | static bool rcu_start_gp_advanced(struct rcu_state *rsp, struct rcu_node *rnp, |
541 | struct rcu_data *rdp); | 541 | struct rcu_data *rdp); |
@@ -837,6 +837,9 @@ static void rcu_eqs_enter(bool user) | |||
837 | * We crowbar the ->dynticks_nesting field to zero to allow for | 837 | * We crowbar the ->dynticks_nesting field to zero to allow for |
838 | * the possibility of usermode upcalls having messed up our count | 838 | * the possibility of usermode upcalls having messed up our count |
839 | * of interrupt nesting level during the prior busy period. | 839 | * of interrupt nesting level during the prior busy period. |
840 | * | ||
841 | * If you add or remove a call to rcu_idle_enter(), be sure to test with | ||
842 | * CONFIG_RCU_EQS_DEBUG=y. | ||
840 | */ | 843 | */ |
841 | void rcu_idle_enter(void) | 844 | void rcu_idle_enter(void) |
842 | { | 845 | { |
@@ -852,6 +855,9 @@ void rcu_idle_enter(void) | |||
852 | * is permitted between this call and rcu_user_exit(). This way the | 855 | * is permitted between this call and rcu_user_exit(). This way the |
853 | * CPU doesn't need to maintain the tick for RCU maintenance purposes | 856 | * CPU doesn't need to maintain the tick for RCU maintenance purposes |
854 | * when the CPU runs in userspace. | 857 | * when the CPU runs in userspace. |
858 | * | ||
859 | * If you add or remove a call to rcu_user_enter(), be sure to test with | ||
860 | * CONFIG_RCU_EQS_DEBUG=y. | ||
855 | */ | 861 | */ |
856 | void rcu_user_enter(void) | 862 | void rcu_user_enter(void) |
857 | { | 863 | { |
@@ -875,6 +881,9 @@ void rcu_user_enter(void) | |||
875 | * Use things like work queues to work around this limitation. | 881 | * Use things like work queues to work around this limitation. |
876 | * | 882 | * |
877 | * You have been warned. | 883 | * You have been warned. |
884 | * | ||
885 | * If you add or remove a call to rcu_irq_exit(), be sure to test with | ||
886 | * CONFIG_RCU_EQS_DEBUG=y. | ||
878 | */ | 887 | */ |
879 | void rcu_irq_exit(void) | 888 | void rcu_irq_exit(void) |
880 | { | 889 | { |
@@ -899,6 +908,9 @@ void rcu_irq_exit(void) | |||
899 | 908 | ||
900 | /* | 909 | /* |
901 | * Wrapper for rcu_irq_exit() where interrupts are enabled. | 910 | * Wrapper for rcu_irq_exit() where interrupts are enabled. |
911 | * | ||
912 | * If you add or remove a call to rcu_irq_exit_irqson(), be sure to test | ||
913 | * with CONFIG_RCU_EQS_DEBUG=y. | ||
902 | */ | 914 | */ |
903 | void rcu_irq_exit_irqson(void) | 915 | void rcu_irq_exit_irqson(void) |
904 | { | 916 | { |
@@ -971,6 +983,9 @@ static void rcu_eqs_exit(bool user) | |||
971 | * allow for the possibility of usermode upcalls messing up our count | 983 | * allow for the possibility of usermode upcalls messing up our count |
972 | * of interrupt nesting level during the busy period that is just | 984 | * of interrupt nesting level during the busy period that is just |
973 | * now starting. | 985 | * now starting. |
986 | * | ||
987 | * If you add or remove a call to rcu_idle_exit(), be sure to test with | ||
988 | * CONFIG_RCU_EQS_DEBUG=y. | ||
974 | */ | 989 | */ |
975 | void rcu_idle_exit(void) | 990 | void rcu_idle_exit(void) |
976 | { | 991 | { |
@@ -987,6 +1002,9 @@ void rcu_idle_exit(void) | |||
987 | * | 1002 | * |
988 | * Exit RCU idle mode while entering the kernel because it can | 1003 | * Exit RCU idle mode while entering the kernel because it can |
989 | * run a RCU read side critical section anytime. | 1004 | * run a RCU read side critical section anytime. |
1005 | * | ||
1006 | * If you add or remove a call to rcu_user_exit(), be sure to test with | ||
1007 | * CONFIG_RCU_EQS_DEBUG=y. | ||
990 | */ | 1008 | */ |
991 | void rcu_user_exit(void) | 1009 | void rcu_user_exit(void) |
992 | { | 1010 | { |
@@ -1012,6 +1030,9 @@ void rcu_user_exit(void) | |||
1012 | * Use things like work queues to work around this limitation. | 1030 | * Use things like work queues to work around this limitation. |
1013 | * | 1031 | * |
1014 | * You have been warned. | 1032 | * You have been warned. |
1033 | * | ||
1034 | * If you add or remove a call to rcu_irq_enter(), be sure to test with | ||
1035 | * CONFIG_RCU_EQS_DEBUG=y. | ||
1015 | */ | 1036 | */ |
1016 | void rcu_irq_enter(void) | 1037 | void rcu_irq_enter(void) |
1017 | { | 1038 | { |
@@ -1037,6 +1058,9 @@ void rcu_irq_enter(void) | |||
1037 | 1058 | ||
1038 | /* | 1059 | /* |
1039 | * Wrapper for rcu_irq_enter() where interrupts are enabled. | 1060 | * Wrapper for rcu_irq_enter() where interrupts are enabled. |
1061 | * | ||
1062 | * If you add or remove a call to rcu_irq_enter_irqson(), be sure to test | ||
1063 | * with CONFIG_RCU_EQS_DEBUG=y. | ||
1040 | */ | 1064 | */ |
1041 | void rcu_irq_enter_irqson(void) | 1065 | void rcu_irq_enter_irqson(void) |
1042 | { | 1066 | { |
@@ -1055,6 +1079,9 @@ void rcu_irq_enter_irqson(void) | |||
1055 | * that the CPU is active. This implementation permits nested NMIs, as | 1079 | * that the CPU is active. This implementation permits nested NMIs, as |
1056 | * long as the nesting level does not overflow an int. (You will probably | 1080 | * long as the nesting level does not overflow an int. (You will probably |
1057 | * run out of stack space first.) | 1081 | * run out of stack space first.) |
1082 | * | ||
1083 | * If you add or remove a call to rcu_nmi_enter(), be sure to test | ||
1084 | * with CONFIG_RCU_EQS_DEBUG=y. | ||
1058 | */ | 1085 | */ |
1059 | void rcu_nmi_enter(void) | 1086 | void rcu_nmi_enter(void) |
1060 | { | 1087 | { |
@@ -1087,6 +1114,9 @@ void rcu_nmi_enter(void) | |||
1087 | * RCU-idle period, update rdtp->dynticks and rdtp->dynticks_nmi_nesting | 1114 | * RCU-idle period, update rdtp->dynticks and rdtp->dynticks_nmi_nesting |
1088 | * to let the RCU grace-period handling know that the CPU is back to | 1115 | * to let the RCU grace-period handling know that the CPU is back to |
1089 | * being RCU-idle. | 1116 | * being RCU-idle. |
1117 | * | ||
1118 | * If you add or remove a call to rcu_nmi_exit(), be sure to test | ||
1119 | * with CONFIG_RCU_EQS_DEBUG=y. | ||
1090 | */ | 1120 | */ |
1091 | void rcu_nmi_exit(void) | 1121 | void rcu_nmi_exit(void) |
1092 | { | 1122 | { |
@@ -1207,6 +1237,22 @@ static int rcu_is_cpu_rrupt_from_idle(void) | |||
1207 | } | 1237 | } |
1208 | 1238 | ||
1209 | /* | 1239 | /* |
1240 | * We are reporting a quiescent state on behalf of some other CPU, so | ||
1241 | * it is our responsibility to check for and handle potential overflow | ||
1242 | * of the rcu_node ->gpnum counter with respect to the rcu_data counters. | ||
1243 | * After all, the CPU might be in deep idle state, and thus executing no | ||
1244 | * code whatsoever. | ||
1245 | */ | ||
1246 | static void rcu_gpnum_ovf(struct rcu_node *rnp, struct rcu_data *rdp) | ||
1247 | { | ||
1248 | lockdep_assert_held(&rnp->lock); | ||
1249 | if (ULONG_CMP_LT(READ_ONCE(rdp->gpnum) + ULONG_MAX / 4, rnp->gpnum)) | ||
1250 | WRITE_ONCE(rdp->gpwrap, true); | ||
1251 | if (ULONG_CMP_LT(rdp->rcu_iw_gpnum + ULONG_MAX / 4, rnp->gpnum)) | ||
1252 | rdp->rcu_iw_gpnum = rnp->gpnum + ULONG_MAX / 4; | ||
1253 | } | ||
1254 | |||
1255 | /* | ||
1210 | * Snapshot the specified CPU's dynticks counter so that we can later | 1256 | * Snapshot the specified CPU's dynticks counter so that we can later |
1211 | * credit them with an implicit quiescent state. Return 1 if this CPU | 1257 | * credit them with an implicit quiescent state. Return 1 if this CPU |
1212 | * is in dynticks idle mode, which is an extended quiescent state. | 1258 | * is in dynticks idle mode, which is an extended quiescent state. |
@@ -1216,15 +1262,34 @@ static int dyntick_save_progress_counter(struct rcu_data *rdp) | |||
1216 | rdp->dynticks_snap = rcu_dynticks_snap(rdp->dynticks); | 1262 | rdp->dynticks_snap = rcu_dynticks_snap(rdp->dynticks); |
1217 | if (rcu_dynticks_in_eqs(rdp->dynticks_snap)) { | 1263 | if (rcu_dynticks_in_eqs(rdp->dynticks_snap)) { |
1218 | trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("dti")); | 1264 | trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("dti")); |
1219 | if (ULONG_CMP_LT(READ_ONCE(rdp->gpnum) + ULONG_MAX / 4, | 1265 | rcu_gpnum_ovf(rdp->mynode, rdp); |
1220 | rdp->mynode->gpnum)) | ||
1221 | WRITE_ONCE(rdp->gpwrap, true); | ||
1222 | return 1; | 1266 | return 1; |
1223 | } | 1267 | } |
1224 | return 0; | 1268 | return 0; |
1225 | } | 1269 | } |
1226 | 1270 | ||
1227 | /* | 1271 | /* |
1272 | * Handler for the irq_work request posted when a grace period has | ||
1273 | * gone on for too long, but not yet long enough for an RCU CPU | ||
1274 | * stall warning. Set state appropriately, but just complain if | ||
1275 | * there is unexpected state on entry. | ||
1276 | */ | ||
1277 | static void rcu_iw_handler(struct irq_work *iwp) | ||
1278 | { | ||
1279 | struct rcu_data *rdp; | ||
1280 | struct rcu_node *rnp; | ||
1281 | |||
1282 | rdp = container_of(iwp, struct rcu_data, rcu_iw); | ||
1283 | rnp = rdp->mynode; | ||
1284 | raw_spin_lock_rcu_node(rnp); | ||
1285 | if (!WARN_ON_ONCE(!rdp->rcu_iw_pending)) { | ||
1286 | rdp->rcu_iw_gpnum = rnp->gpnum; | ||
1287 | rdp->rcu_iw_pending = false; | ||
1288 | } | ||
1289 | raw_spin_unlock_rcu_node(rnp); | ||
1290 | } | ||
1291 | |||
1292 | /* | ||
1228 | * Return true if the specified CPU has passed through a quiescent | 1293 | * Return true if the specified CPU has passed through a quiescent |
1229 | * state by virtue of being in or having passed through an dynticks | 1294 | * state by virtue of being in or having passed through an dynticks |
1230 | * idle state since the last call to dyntick_save_progress_counter() | 1295 | * idle state since the last call to dyntick_save_progress_counter() |
@@ -1235,8 +1300,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp) | |||
1235 | unsigned long jtsq; | 1300 | unsigned long jtsq; |
1236 | bool *rnhqp; | 1301 | bool *rnhqp; |
1237 | bool *ruqp; | 1302 | bool *ruqp; |
1238 | unsigned long rjtsc; | 1303 | struct rcu_node *rnp = rdp->mynode; |
1239 | struct rcu_node *rnp; | ||
1240 | 1304 | ||
1241 | /* | 1305 | /* |
1242 | * If the CPU passed through or entered a dynticks idle phase with | 1306 | * If the CPU passed through or entered a dynticks idle phase with |
@@ -1249,34 +1313,25 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp) | |||
1249 | if (rcu_dynticks_in_eqs_since(rdp->dynticks, rdp->dynticks_snap)) { | 1313 | if (rcu_dynticks_in_eqs_since(rdp->dynticks, rdp->dynticks_snap)) { |
1250 | trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("dti")); | 1314 | trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("dti")); |
1251 | rdp->dynticks_fqs++; | 1315 | rdp->dynticks_fqs++; |
1316 | rcu_gpnum_ovf(rnp, rdp); | ||
1252 | return 1; | 1317 | return 1; |
1253 | } | 1318 | } |
1254 | 1319 | ||
1255 | /* Compute and saturate jiffies_till_sched_qs. */ | ||
1256 | jtsq = jiffies_till_sched_qs; | ||
1257 | rjtsc = rcu_jiffies_till_stall_check(); | ||
1258 | if (jtsq > rjtsc / 2) { | ||
1259 | WRITE_ONCE(jiffies_till_sched_qs, rjtsc); | ||
1260 | jtsq = rjtsc / 2; | ||
1261 | } else if (jtsq < 1) { | ||
1262 | WRITE_ONCE(jiffies_till_sched_qs, 1); | ||
1263 | jtsq = 1; | ||
1264 | } | ||
1265 | |||
1266 | /* | 1320 | /* |
1267 | * Has this CPU encountered a cond_resched_rcu_qs() since the | 1321 | * Has this CPU encountered a cond_resched_rcu_qs() since the |
1268 | * beginning of the grace period? For this to be the case, | 1322 | * beginning of the grace period? For this to be the case, |
1269 | * the CPU has to have noticed the current grace period. This | 1323 | * the CPU has to have noticed the current grace period. This |
1270 | * might not be the case for nohz_full CPUs looping in the kernel. | 1324 | * might not be the case for nohz_full CPUs looping in the kernel. |
1271 | */ | 1325 | */ |
1272 | rnp = rdp->mynode; | 1326 | jtsq = jiffies_till_sched_qs; |
1273 | ruqp = per_cpu_ptr(&rcu_dynticks.rcu_urgent_qs, rdp->cpu); | 1327 | ruqp = per_cpu_ptr(&rcu_dynticks.rcu_urgent_qs, rdp->cpu); |
1274 | if (time_after(jiffies, rdp->rsp->gp_start + jtsq) && | 1328 | if (time_after(jiffies, rdp->rsp->gp_start + jtsq) && |
1275 | READ_ONCE(rdp->rcu_qs_ctr_snap) != per_cpu(rcu_dynticks.rcu_qs_ctr, rdp->cpu) && | 1329 | READ_ONCE(rdp->rcu_qs_ctr_snap) != per_cpu(rcu_dynticks.rcu_qs_ctr, rdp->cpu) && |
1276 | READ_ONCE(rdp->gpnum) == rnp->gpnum && !rdp->gpwrap) { | 1330 | READ_ONCE(rdp->gpnum) == rnp->gpnum && !rdp->gpwrap) { |
1277 | trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("rqc")); | 1331 | trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("rqc")); |
1332 | rcu_gpnum_ovf(rnp, rdp); | ||
1278 | return 1; | 1333 | return 1; |
1279 | } else { | 1334 | } else if (time_after(jiffies, rdp->rsp->gp_start + jtsq)) { |
1280 | /* Load rcu_qs_ctr before store to rcu_urgent_qs. */ | 1335 | /* Load rcu_qs_ctr before store to rcu_urgent_qs. */ |
1281 | smp_store_release(ruqp, true); | 1336 | smp_store_release(ruqp, true); |
1282 | } | 1337 | } |
@@ -1285,6 +1340,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp) | |||
1285 | if (!(rdp->grpmask & rcu_rnp_online_cpus(rnp))) { | 1340 | if (!(rdp->grpmask & rcu_rnp_online_cpus(rnp))) { |
1286 | trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("ofl")); | 1341 | trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("ofl")); |
1287 | rdp->offline_fqs++; | 1342 | rdp->offline_fqs++; |
1343 | rcu_gpnum_ovf(rnp, rdp); | ||
1288 | return 1; | 1344 | return 1; |
1289 | } | 1345 | } |
1290 | 1346 | ||
@@ -1304,10 +1360,6 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp) | |||
1304 | * updates are only once every few jiffies, the probability of | 1360 | * updates are only once every few jiffies, the probability of |
1305 | * lossage (and thus of slight grace-period extension) is | 1361 | * lossage (and thus of slight grace-period extension) is |
1306 | * quite low. | 1362 | * quite low. |
1307 | * | ||
1308 | * Note that if the jiffies_till_sched_qs boot/sysfs parameter | ||
1309 | * is set too high, we override with half of the RCU CPU stall | ||
1310 | * warning delay. | ||
1311 | */ | 1363 | */ |
1312 | rnhqp = &per_cpu(rcu_dynticks.rcu_need_heavy_qs, rdp->cpu); | 1364 | rnhqp = &per_cpu(rcu_dynticks.rcu_need_heavy_qs, rdp->cpu); |
1313 | if (!READ_ONCE(*rnhqp) && | 1365 | if (!READ_ONCE(*rnhqp) && |
@@ -1316,15 +1368,26 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp) | |||
1316 | WRITE_ONCE(*rnhqp, true); | 1368 | WRITE_ONCE(*rnhqp, true); |
1317 | /* Store rcu_need_heavy_qs before rcu_urgent_qs. */ | 1369 | /* Store rcu_need_heavy_qs before rcu_urgent_qs. */ |
1318 | smp_store_release(ruqp, true); | 1370 | smp_store_release(ruqp, true); |
1319 | rdp->rsp->jiffies_resched += 5; /* Re-enable beating. */ | 1371 | rdp->rsp->jiffies_resched += jtsq; /* Re-enable beating. */ |
1320 | } | 1372 | } |
1321 | 1373 | ||
1322 | /* | 1374 | /* |
1323 | * If more than halfway to RCU CPU stall-warning time, do | 1375 | * If more than halfway to RCU CPU stall-warning time, do a |
1324 | * a resched_cpu() to try to loosen things up a bit. | 1376 | * resched_cpu() to try to loosen things up a bit. Also check to |
1377 | * see if the CPU is getting hammered with interrupts, but only | ||
1378 | * once per grace period, just to keep the IPIs down to a dull roar. | ||
1325 | */ | 1379 | */ |
1326 | if (jiffies - rdp->rsp->gp_start > rcu_jiffies_till_stall_check() / 2) | 1380 | if (jiffies - rdp->rsp->gp_start > rcu_jiffies_till_stall_check() / 2) { |
1327 | resched_cpu(rdp->cpu); | 1381 | resched_cpu(rdp->cpu); |
1382 | if (IS_ENABLED(CONFIG_IRQ_WORK) && | ||
1383 | !rdp->rcu_iw_pending && rdp->rcu_iw_gpnum != rnp->gpnum && | ||
1384 | (rnp->ffmask & rdp->grpmask)) { | ||
1385 | init_irq_work(&rdp->rcu_iw, rcu_iw_handler); | ||
1386 | rdp->rcu_iw_pending = true; | ||
1387 | rdp->rcu_iw_gpnum = rnp->gpnum; | ||
1388 | irq_work_queue_on(&rdp->rcu_iw, rdp->cpu); | ||
1389 | } | ||
1390 | } | ||
1328 | 1391 | ||
1329 | return 0; | 1392 | return 0; |
1330 | } | 1393 | } |
@@ -1513,6 +1576,7 @@ static void print_cpu_stall(struct rcu_state *rsp) | |||
1513 | { | 1576 | { |
1514 | int cpu; | 1577 | int cpu; |
1515 | unsigned long flags; | 1578 | unsigned long flags; |
1579 | struct rcu_data *rdp = this_cpu_ptr(rsp->rda); | ||
1516 | struct rcu_node *rnp = rcu_get_root(rsp); | 1580 | struct rcu_node *rnp = rcu_get_root(rsp); |
1517 | long totqlen = 0; | 1581 | long totqlen = 0; |
1518 | 1582 | ||
@@ -1528,7 +1592,9 @@ static void print_cpu_stall(struct rcu_state *rsp) | |||
1528 | */ | 1592 | */ |
1529 | pr_err("INFO: %s self-detected stall on CPU", rsp->name); | 1593 | pr_err("INFO: %s self-detected stall on CPU", rsp->name); |
1530 | print_cpu_stall_info_begin(); | 1594 | print_cpu_stall_info_begin(); |
1595 | raw_spin_lock_irqsave_rcu_node(rdp->mynode, flags); | ||
1531 | print_cpu_stall_info(rsp, smp_processor_id()); | 1596 | print_cpu_stall_info(rsp, smp_processor_id()); |
1597 | raw_spin_unlock_irqrestore_rcu_node(rdp->mynode, flags); | ||
1532 | print_cpu_stall_info_end(); | 1598 | print_cpu_stall_info_end(); |
1533 | for_each_possible_cpu(cpu) | 1599 | for_each_possible_cpu(cpu) |
1534 | totqlen += rcu_segcblist_n_cbs(&per_cpu_ptr(rsp->rda, | 1600 | totqlen += rcu_segcblist_n_cbs(&per_cpu_ptr(rsp->rda, |
@@ -1922,6 +1988,7 @@ static bool __note_gp_changes(struct rcu_state *rsp, struct rcu_node *rnp, | |||
1922 | rdp->core_needs_qs = need_gp; | 1988 | rdp->core_needs_qs = need_gp; |
1923 | zero_cpu_stall_ticks(rdp); | 1989 | zero_cpu_stall_ticks(rdp); |
1924 | WRITE_ONCE(rdp->gpwrap, false); | 1990 | WRITE_ONCE(rdp->gpwrap, false); |
1991 | rcu_gpnum_ovf(rnp, rdp); | ||
1925 | } | 1992 | } |
1926 | return ret; | 1993 | return ret; |
1927 | } | 1994 | } |
@@ -3702,6 +3769,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp) | |||
3702 | rdp->cpu_no_qs.b.norm = true; | 3769 | rdp->cpu_no_qs.b.norm = true; |
3703 | rdp->rcu_qs_ctr_snap = per_cpu(rcu_dynticks.rcu_qs_ctr, cpu); | 3770 | rdp->rcu_qs_ctr_snap = per_cpu(rcu_dynticks.rcu_qs_ctr, cpu); |
3704 | rdp->core_needs_qs = false; | 3771 | rdp->core_needs_qs = false; |
3772 | rdp->rcu_iw_pending = false; | ||
3773 | rdp->rcu_iw_gpnum = rnp->gpnum - 1; | ||
3705 | trace_rcu_grace_period(rsp->name, rdp->gpnum, TPS("cpuonl")); | 3774 | trace_rcu_grace_period(rsp->name, rdp->gpnum, TPS("cpuonl")); |
3706 | raw_spin_unlock_irqrestore_rcu_node(rnp, flags); | 3775 | raw_spin_unlock_irqrestore_rcu_node(rnp, flags); |
3707 | } | 3776 | } |
@@ -3739,10 +3808,24 @@ static void rcutree_affinity_setting(unsigned int cpu, int outgoing) | |||
3739 | */ | 3808 | */ |
3740 | int rcutree_online_cpu(unsigned int cpu) | 3809 | int rcutree_online_cpu(unsigned int cpu) |
3741 | { | 3810 | { |
3742 | sync_sched_exp_online_cleanup(cpu); | 3811 | unsigned long flags; |
3743 | rcutree_affinity_setting(cpu, -1); | 3812 | struct rcu_data *rdp; |
3813 | struct rcu_node *rnp; | ||
3814 | struct rcu_state *rsp; | ||
3815 | |||
3816 | for_each_rcu_flavor(rsp) { | ||
3817 | rdp = per_cpu_ptr(rsp->rda, cpu); | ||
3818 | rnp = rdp->mynode; | ||
3819 | raw_spin_lock_irqsave_rcu_node(rnp, flags); | ||
3820 | rnp->ffmask |= rdp->grpmask; | ||
3821 | raw_spin_unlock_irqrestore_rcu_node(rnp, flags); | ||
3822 | } | ||
3744 | if (IS_ENABLED(CONFIG_TREE_SRCU)) | 3823 | if (IS_ENABLED(CONFIG_TREE_SRCU)) |
3745 | srcu_online_cpu(cpu); | 3824 | srcu_online_cpu(cpu); |
3825 | if (rcu_scheduler_active == RCU_SCHEDULER_INACTIVE) | ||
3826 | return 0; /* Too early in boot for scheduler work. */ | ||
3827 | sync_sched_exp_online_cleanup(cpu); | ||
3828 | rcutree_affinity_setting(cpu, -1); | ||
3746 | return 0; | 3829 | return 0; |
3747 | } | 3830 | } |
3748 | 3831 | ||
@@ -3752,6 +3835,19 @@ int rcutree_online_cpu(unsigned int cpu) | |||
3752 | */ | 3835 | */ |
3753 | int rcutree_offline_cpu(unsigned int cpu) | 3836 | int rcutree_offline_cpu(unsigned int cpu) |
3754 | { | 3837 | { |
3838 | unsigned long flags; | ||
3839 | struct rcu_data *rdp; | ||
3840 | struct rcu_node *rnp; | ||
3841 | struct rcu_state *rsp; | ||
3842 | |||
3843 | for_each_rcu_flavor(rsp) { | ||
3844 | rdp = per_cpu_ptr(rsp->rda, cpu); | ||
3845 | rnp = rdp->mynode; | ||
3846 | raw_spin_lock_irqsave_rcu_node(rnp, flags); | ||
3847 | rnp->ffmask &= ~rdp->grpmask; | ||
3848 | raw_spin_unlock_irqrestore_rcu_node(rnp, flags); | ||
3849 | } | ||
3850 | |||
3755 | rcutree_affinity_setting(cpu, cpu); | 3851 | rcutree_affinity_setting(cpu, cpu); |
3756 | if (IS_ENABLED(CONFIG_TREE_SRCU)) | 3852 | if (IS_ENABLED(CONFIG_TREE_SRCU)) |
3757 | srcu_offline_cpu(cpu); | 3853 | srcu_offline_cpu(cpu); |
@@ -4200,8 +4296,7 @@ void __init rcu_init(void) | |||
4200 | for_each_online_cpu(cpu) { | 4296 | for_each_online_cpu(cpu) { |
4201 | rcutree_prepare_cpu(cpu); | 4297 | rcutree_prepare_cpu(cpu); |
4202 | rcu_cpu_starting(cpu); | 4298 | rcu_cpu_starting(cpu); |
4203 | if (IS_ENABLED(CONFIG_TREE_SRCU)) | 4299 | rcutree_online_cpu(cpu); |
4204 | srcu_online_cpu(cpu); | ||
4205 | } | 4300 | } |
4206 | } | 4301 | } |
4207 | 4302 | ||
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index 8e1f285f0a70..46a5d1991450 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h | |||
@@ -103,6 +103,7 @@ struct rcu_node { | |||
103 | /* Online CPUs for next expedited GP. */ | 103 | /* Online CPUs for next expedited GP. */ |
104 | /* Any CPU that has ever been online will */ | 104 | /* Any CPU that has ever been online will */ |
105 | /* have its bit set. */ | 105 | /* have its bit set. */ |
106 | unsigned long ffmask; /* Fully functional CPUs. */ | ||
106 | unsigned long grpmask; /* Mask to apply to parent qsmask. */ | 107 | unsigned long grpmask; /* Mask to apply to parent qsmask. */ |
107 | /* Only one bit will be set in this mask. */ | 108 | /* Only one bit will be set in this mask. */ |
108 | int grplo; /* lowest-numbered CPU or group here. */ | 109 | int grplo; /* lowest-numbered CPU or group here. */ |
@@ -285,6 +286,10 @@ struct rcu_data { | |||
285 | 286 | ||
286 | /* 8) RCU CPU stall data. */ | 287 | /* 8) RCU CPU stall data. */ |
287 | unsigned int softirq_snap; /* Snapshot of softirq activity. */ | 288 | unsigned int softirq_snap; /* Snapshot of softirq activity. */ |
289 | /* ->rcu_iw* fields protected by leaf rcu_node ->lock. */ | ||
290 | struct irq_work rcu_iw; /* Check for non-irq activity. */ | ||
291 | bool rcu_iw_pending; /* Is ->rcu_iw pending? */ | ||
292 | unsigned long rcu_iw_gpnum; /* ->gpnum associated with ->rcu_iw. */ | ||
288 | 293 | ||
289 | int cpu; | 294 | int cpu; |
290 | struct rcu_state *rsp; | 295 | struct rcu_state *rsp; |
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index e012b9be777e..4c857e583802 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h | |||
@@ -54,6 +54,7 @@ DEFINE_PER_CPU(char, rcu_cpu_has_work); | |||
54 | * This probably needs to be excluded from -rt builds. | 54 | * This probably needs to be excluded from -rt builds. |
55 | */ | 55 | */ |
56 | #define rt_mutex_owner(a) ({ WARN_ON_ONCE(1); NULL; }) | 56 | #define rt_mutex_owner(a) ({ WARN_ON_ONCE(1); NULL; }) |
57 | #define rt_mutex_futex_unlock(x) WARN_ON_ONCE(1) | ||
57 | 58 | ||
58 | #endif /* #else #ifdef CONFIG_RCU_BOOST */ | 59 | #endif /* #else #ifdef CONFIG_RCU_BOOST */ |
59 | 60 | ||
@@ -530,7 +531,7 @@ void rcu_read_unlock_special(struct task_struct *t) | |||
530 | 531 | ||
531 | /* Unboost if we were boosted. */ | 532 | /* Unboost if we were boosted. */ |
532 | if (IS_ENABLED(CONFIG_RCU_BOOST) && drop_boost_mutex) | 533 | if (IS_ENABLED(CONFIG_RCU_BOOST) && drop_boost_mutex) |
533 | rt_mutex_unlock(&rnp->boost_mtx); | 534 | rt_mutex_futex_unlock(&rnp->boost_mtx); |
534 | 535 | ||
535 | /* | 536 | /* |
536 | * If this was the last task on the expedited lists, | 537 | * If this was the last task on the expedited lists, |
@@ -911,8 +912,6 @@ void exit_rcu(void) | |||
911 | 912 | ||
912 | #ifdef CONFIG_RCU_BOOST | 913 | #ifdef CONFIG_RCU_BOOST |
913 | 914 | ||
914 | #include "../locking/rtmutex_common.h" | ||
915 | |||
916 | static void rcu_wake_cond(struct task_struct *t, int status) | 915 | static void rcu_wake_cond(struct task_struct *t, int status) |
917 | { | 916 | { |
918 | /* | 917 | /* |
@@ -1507,7 +1506,7 @@ static void rcu_prepare_for_idle(void) | |||
1507 | rdtp->last_accelerate = jiffies; | 1506 | rdtp->last_accelerate = jiffies; |
1508 | for_each_rcu_flavor(rsp) { | 1507 | for_each_rcu_flavor(rsp) { |
1509 | rdp = this_cpu_ptr(rsp->rda); | 1508 | rdp = this_cpu_ptr(rsp->rda); |
1510 | if (rcu_segcblist_pend_cbs(&rdp->cblist)) | 1509 | if (!rcu_segcblist_pend_cbs(&rdp->cblist)) |
1511 | continue; | 1510 | continue; |
1512 | rnp = rdp->mynode; | 1511 | rnp = rdp->mynode; |
1513 | raw_spin_lock_rcu_node(rnp); /* irqs already disabled. */ | 1512 | raw_spin_lock_rcu_node(rnp); /* irqs already disabled. */ |
@@ -1671,6 +1670,7 @@ static void print_cpu_stall_info_begin(void) | |||
1671 | */ | 1670 | */ |
1672 | static void print_cpu_stall_info(struct rcu_state *rsp, int cpu) | 1671 | static void print_cpu_stall_info(struct rcu_state *rsp, int cpu) |
1673 | { | 1672 | { |
1673 | unsigned long delta; | ||
1674 | char fast_no_hz[72]; | 1674 | char fast_no_hz[72]; |
1675 | struct rcu_data *rdp = per_cpu_ptr(rsp->rda, cpu); | 1675 | struct rcu_data *rdp = per_cpu_ptr(rsp->rda, cpu); |
1676 | struct rcu_dynticks *rdtp = rdp->dynticks; | 1676 | struct rcu_dynticks *rdtp = rdp->dynticks; |
@@ -1685,11 +1685,15 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu) | |||
1685 | ticks_value = rsp->gpnum - rdp->gpnum; | 1685 | ticks_value = rsp->gpnum - rdp->gpnum; |
1686 | } | 1686 | } |
1687 | print_cpu_stall_fast_no_hz(fast_no_hz, cpu); | 1687 | print_cpu_stall_fast_no_hz(fast_no_hz, cpu); |
1688 | pr_err("\t%d-%c%c%c: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u fqs=%ld %s\n", | 1688 | delta = rdp->mynode->gpnum - rdp->rcu_iw_gpnum; |
1689 | pr_err("\t%d-%c%c%c%c: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u fqs=%ld %s\n", | ||
1689 | cpu, | 1690 | cpu, |
1690 | "O."[!!cpu_online(cpu)], | 1691 | "O."[!!cpu_online(cpu)], |
1691 | "o."[!!(rdp->grpmask & rdp->mynode->qsmaskinit)], | 1692 | "o."[!!(rdp->grpmask & rdp->mynode->qsmaskinit)], |
1692 | "N."[!!(rdp->grpmask & rdp->mynode->qsmaskinitnext)], | 1693 | "N."[!!(rdp->grpmask & rdp->mynode->qsmaskinitnext)], |
1694 | !IS_ENABLED(CONFIG_IRQ_WORK) ? '?' : | ||
1695 | rdp->rcu_iw_pending ? (int)min(delta, 9UL) + '0' : | ||
1696 | "!."[!delta], | ||
1693 | ticks_value, ticks_title, | 1697 | ticks_value, ticks_title, |
1694 | rcu_dynticks_snap(rdtp) & 0xfff, | 1698 | rcu_dynticks_snap(rdtp) & 0xfff, |
1695 | rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting, | 1699 | rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting, |
diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c index 5033b66d2753..27694561f769 100644 --- a/kernel/rcu/update.c +++ b/kernel/rcu/update.c | |||
@@ -494,6 +494,7 @@ EXPORT_SYMBOL_GPL(do_trace_rcu_torture_read); | |||
494 | #endif | 494 | #endif |
495 | 495 | ||
496 | int rcu_cpu_stall_suppress __read_mostly; /* 1 = suppress stall warnings. */ | 496 | int rcu_cpu_stall_suppress __read_mostly; /* 1 = suppress stall warnings. */ |
497 | EXPORT_SYMBOL_GPL(rcu_cpu_stall_suppress); | ||
497 | static int rcu_cpu_stall_timeout __read_mostly = CONFIG_RCU_CPU_STALL_TIMEOUT; | 498 | static int rcu_cpu_stall_timeout __read_mostly = CONFIG_RCU_CPU_STALL_TIMEOUT; |
498 | 499 | ||
499 | module_param(rcu_cpu_stall_suppress, int, 0644); | 500 | module_param(rcu_cpu_stall_suppress, int, 0644); |
@@ -575,7 +576,6 @@ DEFINE_STATIC_SRCU(tasks_rcu_exit_srcu); | |||
575 | static int rcu_task_stall_timeout __read_mostly = RCU_TASK_STALL_TIMEOUT; | 576 | static int rcu_task_stall_timeout __read_mostly = RCU_TASK_STALL_TIMEOUT; |
576 | module_param(rcu_task_stall_timeout, int, 0644); | 577 | module_param(rcu_task_stall_timeout, int, 0644); |
577 | 578 | ||
578 | static void rcu_spawn_tasks_kthread(void); | ||
579 | static struct task_struct *rcu_tasks_kthread_ptr; | 579 | static struct task_struct *rcu_tasks_kthread_ptr; |
580 | 580 | ||
581 | /** | 581 | /** |
@@ -600,7 +600,6 @@ void call_rcu_tasks(struct rcu_head *rhp, rcu_callback_t func) | |||
600 | { | 600 | { |
601 | unsigned long flags; | 601 | unsigned long flags; |
602 | bool needwake; | 602 | bool needwake; |
603 | bool havetask = READ_ONCE(rcu_tasks_kthread_ptr); | ||
604 | 603 | ||
605 | rhp->next = NULL; | 604 | rhp->next = NULL; |
606 | rhp->func = func; | 605 | rhp->func = func; |
@@ -610,11 +609,8 @@ void call_rcu_tasks(struct rcu_head *rhp, rcu_callback_t func) | |||
610 | rcu_tasks_cbs_tail = &rhp->next; | 609 | rcu_tasks_cbs_tail = &rhp->next; |
611 | raw_spin_unlock_irqrestore(&rcu_tasks_cbs_lock, flags); | 610 | raw_spin_unlock_irqrestore(&rcu_tasks_cbs_lock, flags); |
612 | /* We can't create the thread unless interrupts are enabled. */ | 611 | /* We can't create the thread unless interrupts are enabled. */ |
613 | if ((needwake && havetask) || | 612 | if (needwake && READ_ONCE(rcu_tasks_kthread_ptr)) |
614 | (!havetask && !irqs_disabled_flags(flags))) { | ||
615 | rcu_spawn_tasks_kthread(); | ||
616 | wake_up(&rcu_tasks_cbs_wq); | 613 | wake_up(&rcu_tasks_cbs_wq); |
617 | } | ||
618 | } | 614 | } |
619 | EXPORT_SYMBOL_GPL(call_rcu_tasks); | 615 | EXPORT_SYMBOL_GPL(call_rcu_tasks); |
620 | 616 | ||
@@ -853,27 +849,18 @@ static int __noreturn rcu_tasks_kthread(void *arg) | |||
853 | } | 849 | } |
854 | } | 850 | } |
855 | 851 | ||
856 | /* Spawn rcu_tasks_kthread() at first call to call_rcu_tasks(). */ | 852 | /* Spawn rcu_tasks_kthread() at core_initcall() time. */ |
857 | static void rcu_spawn_tasks_kthread(void) | 853 | static int __init rcu_spawn_tasks_kthread(void) |
858 | { | 854 | { |
859 | static DEFINE_MUTEX(rcu_tasks_kthread_mutex); | ||
860 | struct task_struct *t; | 855 | struct task_struct *t; |
861 | 856 | ||
862 | if (READ_ONCE(rcu_tasks_kthread_ptr)) { | ||
863 | smp_mb(); /* Ensure caller sees full kthread. */ | ||
864 | return; | ||
865 | } | ||
866 | mutex_lock(&rcu_tasks_kthread_mutex); | ||
867 | if (rcu_tasks_kthread_ptr) { | ||
868 | mutex_unlock(&rcu_tasks_kthread_mutex); | ||
869 | return; | ||
870 | } | ||
871 | t = kthread_run(rcu_tasks_kthread, NULL, "rcu_tasks_kthread"); | 857 | t = kthread_run(rcu_tasks_kthread, NULL, "rcu_tasks_kthread"); |
872 | BUG_ON(IS_ERR(t)); | 858 | BUG_ON(IS_ERR(t)); |
873 | smp_mb(); /* Ensure others see full kthread. */ | 859 | smp_mb(); /* Ensure others see full kthread. */ |
874 | WRITE_ONCE(rcu_tasks_kthread_ptr, t); | 860 | WRITE_ONCE(rcu_tasks_kthread_ptr, t); |
875 | mutex_unlock(&rcu_tasks_kthread_mutex); | 861 | return 0; |
876 | } | 862 | } |
863 | core_initcall(rcu_spawn_tasks_kthread); | ||
877 | 864 | ||
878 | /* Do the srcu_read_lock() for the above synchronize_srcu(). */ | 865 | /* Do the srcu_read_lock() for the above synchronize_srcu(). */ |
879 | void exit_tasks_rcu_start(void) | 866 | void exit_tasks_rcu_start(void) |
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index d17c5da523a0..9446b2e5eac5 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -505,8 +505,7 @@ void resched_cpu(int cpu) | |||
505 | struct rq *rq = cpu_rq(cpu); | 505 | struct rq *rq = cpu_rq(cpu); |
506 | unsigned long flags; | 506 | unsigned long flags; |
507 | 507 | ||
508 | if (!raw_spin_trylock_irqsave(&rq->lock, flags)) | 508 | raw_spin_lock_irqsave(&rq->lock, flags); |
509 | return; | ||
510 | resched_curr(rq); | 509 | resched_curr(rq); |
511 | raw_spin_unlock_irqrestore(&rq->lock, flags); | 510 | raw_spin_unlock_irqrestore(&rq->lock, flags); |
512 | } | 511 | } |
@@ -4842,6 +4841,7 @@ int __sched _cond_resched(void) | |||
4842 | preempt_schedule_common(); | 4841 | preempt_schedule_common(); |
4843 | return 1; | 4842 | return 1; |
4844 | } | 4843 | } |
4844 | rcu_all_qs(); | ||
4845 | return 0; | 4845 | return 0; |
4846 | } | 4846 | } |
4847 | EXPORT_SYMBOL(_cond_resched); | 4847 | EXPORT_SYMBOL(_cond_resched); |
@@ -5165,6 +5165,7 @@ void sched_show_task(struct task_struct *p) | |||
5165 | show_stack(p, NULL); | 5165 | show_stack(p, NULL); |
5166 | put_task_stack(p); | 5166 | put_task_stack(p); |
5167 | } | 5167 | } |
5168 | EXPORT_SYMBOL_GPL(sched_show_task); | ||
5168 | 5169 | ||
5169 | static inline bool | 5170 | static inline bool |
5170 | state_filter_match(unsigned long state_filter, struct task_struct *p) | 5171 | state_filter_match(unsigned long state_filter, struct task_struct *p) |
diff --git a/tools/testing/selftests/rcutorture/bin/config_override.sh b/tools/testing/selftests/rcutorture/bin/config_override.sh index 49fa51726ce3..ef7fcbac3d42 100755 --- a/tools/testing/selftests/rcutorture/bin/config_override.sh +++ b/tools/testing/selftests/rcutorture/bin/config_override.sh | |||
@@ -42,7 +42,7 @@ else | |||
42 | exit 1 | 42 | exit 1 |
43 | fi | 43 | fi |
44 | 44 | ||
45 | T=/tmp/config_override.sh.$$ | 45 | T=${TMPDIR-/tmp}/config_override.sh.$$ |
46 | trap 'rm -rf $T' 0 | 46 | trap 'rm -rf $T' 0 |
47 | mkdir $T | 47 | mkdir $T |
48 | 48 | ||
diff --git a/tools/testing/selftests/rcutorture/bin/configcheck.sh b/tools/testing/selftests/rcutorture/bin/configcheck.sh index 70fca318a82b..197deece7c7c 100755 --- a/tools/testing/selftests/rcutorture/bin/configcheck.sh +++ b/tools/testing/selftests/rcutorture/bin/configcheck.sh | |||
@@ -19,7 +19,7 @@ | |||
19 | # | 19 | # |
20 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 20 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> |
21 | 21 | ||
22 | T=/tmp/abat-chk-config.sh.$$ | 22 | T=${TMPDIR-/tmp}/abat-chk-config.sh.$$ |
23 | trap 'rm -rf $T' 0 | 23 | trap 'rm -rf $T' 0 |
24 | mkdir $T | 24 | mkdir $T |
25 | 25 | ||
diff --git a/tools/testing/selftests/rcutorture/bin/configinit.sh b/tools/testing/selftests/rcutorture/bin/configinit.sh index 3f81a1095206..51f66a7ce876 100755 --- a/tools/testing/selftests/rcutorture/bin/configinit.sh +++ b/tools/testing/selftests/rcutorture/bin/configinit.sh | |||
@@ -32,7 +32,7 @@ | |||
32 | # | 32 | # |
33 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 33 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> |
34 | 34 | ||
35 | T=/tmp/configinit.sh.$$ | 35 | T=${TMPDIR-/tmp}/configinit.sh.$$ |
36 | trap 'rm -rf $T' 0 | 36 | trap 'rm -rf $T' 0 |
37 | mkdir $T | 37 | mkdir $T |
38 | 38 | ||
diff --git a/tools/testing/selftests/rcutorture/bin/kvm-build.sh b/tools/testing/selftests/rcutorture/bin/kvm-build.sh index 46752c164676..fb66d0173638 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm-build.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm-build.sh | |||
@@ -35,7 +35,7 @@ then | |||
35 | exit 1 | 35 | exit 1 |
36 | fi | 36 | fi |
37 | 37 | ||
38 | T=/tmp/test-linux.sh.$$ | 38 | T=${TMPDIR-/tmp}/test-linux.sh.$$ |
39 | trap 'rm -rf $T' 0 | 39 | trap 'rm -rf $T' 0 |
40 | mkdir $T | 40 | mkdir $T |
41 | 41 | ||
diff --git a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh index 0af36a721b9c..ab14b97c942c 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | |||
@@ -38,7 +38,7 @@ | |||
38 | # | 38 | # |
39 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 39 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> |
40 | 40 | ||
41 | T=/tmp/kvm-test-1-run.sh.$$ | 41 | T=${TMPDIR-/tmp}/kvm-test-1-run.sh.$$ |
42 | trap 'rm -rf $T' 0 | 42 | trap 'rm -rf $T' 0 |
43 | mkdir $T | 43 | mkdir $T |
44 | 44 | ||
diff --git a/tools/testing/selftests/rcutorture/bin/kvm.sh b/tools/testing/selftests/rcutorture/bin/kvm.sh index b55895fb10ed..ccd49e958fd2 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm.sh | |||
@@ -30,7 +30,7 @@ | |||
30 | scriptname=$0 | 30 | scriptname=$0 |
31 | args="$*" | 31 | args="$*" |
32 | 32 | ||
33 | T=/tmp/kvm.sh.$$ | 33 | T=${TMPDIR-/tmp}/kvm.sh.$$ |
34 | trap 'rm -rf $T' 0 | 34 | trap 'rm -rf $T' 0 |
35 | mkdir $T | 35 | mkdir $T |
36 | 36 | ||
@@ -222,7 +222,7 @@ do | |||
222 | exit 1 | 222 | exit 1 |
223 | fi | 223 | fi |
224 | done | 224 | done |
225 | sort -k2nr $T/cfgcpu > $T/cfgcpu.sort | 225 | sort -k2nr $T/cfgcpu -T="$T" > $T/cfgcpu.sort |
226 | 226 | ||
227 | # Use a greedy bin-packing algorithm, sorting the list accordingly. | 227 | # Use a greedy bin-packing algorithm, sorting the list accordingly. |
228 | awk < $T/cfgcpu.sort > $T/cfgcpu.pack -v ncpus=$cpus ' | 228 | awk < $T/cfgcpu.sort > $T/cfgcpu.pack -v ncpus=$cpus ' |
diff --git a/tools/testing/selftests/rcutorture/bin/parse-build.sh b/tools/testing/selftests/rcutorture/bin/parse-build.sh index a6b57622c2e5..24fe5f822b28 100755 --- a/tools/testing/selftests/rcutorture/bin/parse-build.sh +++ b/tools/testing/selftests/rcutorture/bin/parse-build.sh | |||
@@ -28,7 +28,7 @@ | |||
28 | 28 | ||
29 | F=$1 | 29 | F=$1 |
30 | title=$2 | 30 | title=$2 |
31 | T=/tmp/parse-build.sh.$$ | 31 | T=${TMPDIR-/tmp}/parse-build.sh.$$ |
32 | trap 'rm -rf $T' 0 | 32 | trap 'rm -rf $T' 0 |
33 | mkdir $T | 33 | mkdir $T |
34 | 34 | ||
diff --git a/tools/testing/selftests/rcutorture/bin/parse-torture.sh b/tools/testing/selftests/rcutorture/bin/parse-torture.sh index e3c5f0705696..f12c38909b00 100755 --- a/tools/testing/selftests/rcutorture/bin/parse-torture.sh +++ b/tools/testing/selftests/rcutorture/bin/parse-torture.sh | |||
@@ -27,7 +27,7 @@ | |||
27 | # | 27 | # |
28 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 28 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> |
29 | 29 | ||
30 | T=/tmp/parse-torture.sh.$$ | 30 | T=${TMPDIR-/tmp}/parse-torture.sh.$$ |
31 | file="$1" | 31 | file="$1" |
32 | title="$2" | 32 | title="$2" |
33 | 33 | ||