Lines Matching refs:structure
27 This diagram shows an enclosing ``rcu_state`` structure containing a tree
31 This structure is adjusted at boot time, if needed, to handle the common
47 structure.
105 structure need advance to the ``rcu_node`` structure at the next level
106 up the tree. This means that at the leaf-level ``rcu_node`` structure,
113 period will progress all the way to the root ``rcu_node`` structure,
115 structure remains acceptably low.
138 are protected by the corresponding root ``rcu_node`` structure's lock.
139 #. Each ``rcu_node`` structure has a spinlock.
154 #. ``rcu_state``: This structure forms the interconnection between the
160 #. ``rcu_node``: This structure forms the combining tree that propagates
173 #. ``rcu_data``: This per-CPU structure is the focus of quiescent-state
175 to the corresponding leaf ``rcu_node`` structure to allow
177 combining tree. Like the ``rcu_node`` structure, it provides a local
180 structure records past dyntick-idle state for the corresponding CPU
182 #. ``rcu_head``: This structure represents RCU callbacks, and is the
183 only structure allocated and managed by RCU users. The ``rcu_head``
184 structure is normally embedded within the RCU-protected data
185 structure.
195 The ``rcu_state`` structure is the base structure that represents the
196 state of RCU in the system. This structure forms the interconnection
202 A few of the ``rcu_state`` structure's fields are discussed, singly and
209 This portion of the ``rcu_state`` structure is declared as follows:
244 structure on the corresponding level of the tree, for example, as shown
250 ``rcu_node`` structure, the first element references the first child of
252 first leaf ``rcu_node`` structure.
260 corresponding CPU's ``rcu_data`` structure.
268 This portion of the ``rcu_state`` structure is declared as follows:
280 the root ``rcu_node`` structure's ``->lock`` field.
283 structures as well. The fields in the ``rcu_state`` structure represent
292 This portion of the ``rcu_state`` structure is declared as follows:
323 The ``rcu_node`` structure's fields are discussed, singly and in groups,
329 This portion of the ``rcu_node`` structure is declared as follows:
351 ``rcu_node`` structure in its parent's bitmasks, which are described
353 lowest and highest numbered CPU served by this ``rcu_node`` structure,
362 This field of the ``rcu_node`` structure is declared as follows:
368 This field is used to protect the remaining fields in this structure,
369 unless otherwise stated. That said, all of the fields in this structure
379 This portion of the ``rcu_node`` structure is declared as follows:
387 the field of the same name in the ``rcu_state`` structure. They each may
389 two bits of a given ``rcu_node`` structure's ``->gp_seq`` field is zero,
390 then this ``rcu_node`` structure believes that RCU is idle.
392 The ``>gp_seq`` field of each ``rcu_node`` structure is updated at the
396 period request seen by the corresponding ``rcu_node`` structure. The
403 | Suppose that this ``rcu_node`` structure doesn't see a request for a |
421 This portion of the ``rcu_node`` structure has fields as follows:
430 The ``->qsmask`` field tracks which of this ``rcu_node`` structure's
436 structure's children still need to report quiescent states for the
443 ``rcu_node`` structure's children cover for at least one online CPU.
489 know that the ``rcu_node`` structure tracks them.
502 ``->blkd_tasks`` list for the leaf ``rcu_node`` structure corresponding
524 structure's blocked-task list would be as shown below:
613 The maximum number of levels in the ``rcu_node`` structure is currently
614 limited to four, as specified by lines 21-24 and the structure of the
633 each leaf ``rcu_node`` structure. Experience has shown that allowing a
634 given leaf ``rcu_node`` structure to handle 64 CPUs, as permitted by the
637 fields. The number of CPUs per leaf ``rcu_node`` structure is therefore
644 single-level (which contains a single ``rcu_node`` structure),
670 The ``rcu_segcblist`` structure maintains a segmented list of callbacks
758 structure, *not* the ``->head`` pointer. The reason for this is that all
773 ``->len`` count is zero only if the ``rcu_segcblist`` structure really
783 fields in this structure may be accessed only from the corresponding CPU
784 (and from tracing) unless otherwise stated. This structure is the focus
786 its relationship to the corresponding leaf ``rcu_node`` structure to
788 combining tree. Like the ``rcu_node`` structure, it provides a local
791 structure records past dyntick-idle state for the corresponding CPU and
794 The ``rcu_data`` structure's fields are discussed, singly and in groups,
800 This portion of the ``rcu_data`` structure is declared as follows:
810 ``->mynode`` field references the corresponding ``rcu_node`` structure.
816 corresponding to this ``rcu_data`` structure, and is also used when
819 need not dump out any ``rcu_data`` structure for which this flag is not
825 This portion of the ``rcu_data`` structure is declared as follows:
838 name in the rcu_node structure. They may each lag up to one behind their
843 structure's ``->gp_seq`` are zero, then this ``rcu_data`` structure
882 This portion of the ``rcu_data`` structure is declared as follows:
895 The ``->cblist`` structure is the segmented callback list described
896 earlier. The CPU advances the callbacks in its ``rcu_data`` structure
899 of its ``rcu_data`` structure's ``->gp_seq`` field differs from that of
900 its leaf ``rcu_node`` structure. Recall that each ``rcu_node``
901 structure's ``->gp_seq`` field is updated at the beginnings and ends of
920 This portion of the ``rcu_data`` structure is declared as follows:
934 This portion of the rcu_data structure is declared as follows:
944 These fields in the rcu_data structure maintain the per-CPU dyntick-idle
1012 Each ``rcu_head`` structure represents an RCU callback. These structures
1018 The ``rcu_head`` structure has fields as follows:
1029 ``rcu_head`` structure. However, ``kfree_rcu()`` uses the ``->func``
1030 field to record the offset of the ``rcu_head`` structure within the
1031 enclosing RCU-protected data structure.
1034 RCU users, this structure is an opaque “cookie”.
1040 | the ``rcu_head`` structure, how is that function supposed to find the |
1041 | beginning of the enclosing RCU-protected data structure? |
1046 | RCU-protected data structure. The callback function can therefore use |
1049 | find the beginning of the enclosing structure. |
1056 the ``task_struct`` structure:
1079 ``->rcu_blocked_node`` field references the ``rcu_node`` structure whose
1115 the specified ``rcu_state`` structure's ``->node[]`` array, which is the
1116 root ``rcu_node`` structure.
1120 ``rcu_state`` structure's ``->node[]`` array, performing a breadth-first
1140 So the state of RCU is represented by an ``rcu_state`` structure, which
1143 is tracked by dynticks-related fields in the ``rcu_data`` structure. If