Changeset d4d36f9 in mainline for kernel/generic/include/synch/rcu_types.h
- Timestamp:
- 2012-07-30T05:23:06Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 452e91b
- Parents:
- f0fcb04
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/synch/rcu_types.h
rf0fcb04 rd4d36f9 39 39 #include <synch/semaphore.h> 40 40 41 #if !defined(RCU_PREEMPT_PODZIMEK) && !defined(RCU_PREEMPT_A) 42 #define RCU_PREEMPT_A 43 //#error You must select an RCU algorithm. 44 #endif 45 41 46 42 47 /* Fwd decl. */ … … 58 63 /** RCU related per-cpu data. */ 59 64 typedef struct rcu_cpu_data { 60 /** The cpu recorded a quiescent state last time during this grace period 65 /** The cpu recorded a quiescent state last time during this grace period.*/ 61 66 rcu_gp_t last_seen_gp; 67 68 #ifdef RCU_PREEMPT_PODZIMEK 69 /** This cpu has not yet passed a quiescent state and it is delaying the 70 * detector. Once it reaches a QS it must sema_up(rcu.remaining_readers). 71 */ 72 bool is_delaying_gp; 62 73 74 /** True if we should signal the detector that we exited a reader section. 75 * 76 * Equal to (THREAD->rcu.was_preempted || CPU->rcu.is_delaying_gp). 77 */ 78 bool signal_unlock; 79 63 80 /** The number of times an RCU reader section is nested on this cpu. 64 81 * … … 68 85 */ 69 86 size_t nesting_cnt; 70 87 #endif 88 71 89 /** Callbacks to invoke once the current grace period ends, ie cur_cbs_gp. 72 90 * Accessed by the local reclaimer only. … … 102 120 rcu_gp_t next_cbs_gp; 103 121 104 /** This cpu has not yet passed a quiescent state and it is delaying the105 * detector. Once it reaches a QS it must sema_up(rcu.remaining_readers).106 */107 bool is_delaying_gp;108 109 /** True if we should signal the detector that we exited a reader section.110 *111 * Equal to (THREAD->rcu.was_preempted || CPU->rcu.is_delaying_gp).112 */113 bool signal_unlock;114 115 122 /** Positive if there are callbacks pending in arriving_cbs. */ 116 123 semaphore_t arrived_flag; … … 142 149 */ 143 150 size_t nesting_cnt; 151 152 #ifdef RCU_PREEMPT_PODZIMEK 144 153 145 154 /** True if the thread was preempted in a reader section. … … 151 160 */ 152 161 bool was_preempted; 162 #endif 163 153 164 /** Preempted threads link. Access with rcu.prempt_lock.*/ 154 165 link_t preempt_link;
Note:
See TracChangeset
for help on using the changeset viewer.