Lines Matching full:period

2 A Tour Through TREE_RCU's Grace-Period Memory Ordering
13 grace-period memory ordering guarantee is provided.
15 What Is Tree RCU's Grace Period Memory Ordering Guarantee?
20 Any code that happens after the end of a given RCU grace period is guaranteed
22 period that are within RCU read-side critical sections.
24 period is guaranteed to not see the effects of all accesses following the end
25 of that grace period that are within RCU read-side critical sections.
34 two phases, one of which is executed before the grace period and
35 the other of which is executed after the grace period.
46 Tree RCU Grace Period Memory Ordering Building Blocks
49 The workhorse for RCU's grace-period memory ordering is the
74 period, including any CPUs that came online or went offline during
75 the grace period in question.
119 | that new readers will see all of the updater's pre-grace-period |
120 | accesses and also guarantees that the updater's post-grace-period |
126 | Because we must provide ordering for RCU's polling grace-period |
145 RCU's grace-period memory ordering guarantee to extend to any
152 The grace-period kthread invokes ``rcu_dynticks_snap()`` and
159 | But what about CPUs that remain offline for the entire grace period? |
163 | Such CPUs will be offline at the beginning of the grace period, so |
164 | the grace period won't expect quiescent states from them. Races |
165 | between grace-period start and CPU-hotplug operations are mediated |
172 a CPU that is not yet aware that the grace period has ended, and thus
173 might not yet be subject to the grace period's memory ordering.
193 Tree RCU's grace--period memory-ordering guarantees rely most heavily on
256 Tree RCU Grace Period Memory Ordering Components
259 Tree RCU's grace-period memory-ordering guarantee is provided by a
263 #. `Grace-Period Initialization`_
268 #. `Grace-Period Cleanup`_
277 If RCU's grace-period guarantee is to mean anything at all, any access
279 happen before the corresponding grace period. The implementation of this
280 portion of RCU's grace period guarantee is shown in the following
290 period until a later call to ``rcu_accelerate_cbs()``, as shown in the
306 There are a few other code paths within grace-period processing that
309 with a future grace-period number under the protection of the CPU's lead
318 update) happen before the start of the corresponding grace period.
332 Grace-Period Initialization
335 Grace-period initialization is carried out by the grace-period kernel
338 ordering through the grace-period computation will require duplicating
341 to keep the ``rcu_node`` river tractable, the grace-period kernel
343 section with the various phases of grace-period initialization.
345 The first ordering-related grace-period initialization action is to
346 advance the ``rcu_state`` structure's ``->gp_seq`` grace-period-number
357 grace period. In the common case where the number of online CPUs for
381 ``__note_gp_changes()`` to notice that a new grace period has started,
382 as described in the next section. But because the grace-period kthread
383 started the grace period at the root (with the advancing of the
386 the start of the grace period will happen after the actual start of the
387 grace period.
392 | But what about the CPU that started the grace period? Why wouldn't it |
393 | see the start of the grace period right when it started that grace |
394 | period? |
399 | CPU starting the grace period is immediately aware of having done so. |
401 | the CPU starting the grace period does not really become aware of the |
402 | start of this grace period until its first call to |
412 When all entities that might block the grace period have reported
414 states reported on their behalf), the grace period can end. Online
421 end of the grace period. Earlier quiescent states would push up the
429 point that CPU will notice the start of a new grace period while holding
431 diagram happens after the start of the grace period. In addition, this
434 grace period, and thus a critical section that the grace period must
441 | beginning of the grace period (the advancing of ``->gp_seq`` from |
442 | earlier), so why should the grace period wait on such a critical |
447 | It is indeed not necessary for the grace period to wait on such a |
450 | more scalable than a “big bang” all-at-once grace-period start could |
466 apply to the current grace period, it invokes ``rcu_report_rnp()`` which
495 The RCU grace-period kernel thread samples the per-CPU idleness variable
498 precede the idle period (the oval near the top of the diagram above)
499 will happen before the end of the current grace period. Similarly, the
500 beginning of the current grace period will happen before any RCU
501 read-side critical sections that follow the idle period (the oval near
504 Plumbing this into the full grace-period execution is described
521 ``->qsmaskinitnext``. The RCU grace-period kernel thread samples this
523 grace period.
525 Plumbing this into the full grace-period execution is described
532 states, and therefore the grace-period kernel thread must do the
554 | subordinate to that structure on which the current grace period is |
556 | root ended the grace period? |
567 Grace-Period Cleanup
570 Grace-period cleanup first scans the ``rcu_node`` tree breadth-first
577 As indicated by the oval at the bottom of the diagram, once grace-period
578 cleanup is complete, the next grace period can begin.
583 | But when precisely does the grace period end? |
587 | There is no useful single point at which the grace period can be said |
602 waiting for this grace period to end. These callbacks are identified by
620 period.
627 important, consider the top half of the `grace-period
631 the rightmost leaf ``rcu_node`` structure, and the grace-period kernel
633 grace period's memory ordering might not yet have reached that CPU, so