Changeset a35b458 in mainline for kernel/generic/include/synch
- Timestamp:
- 2018-03-02T20:10:49Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- Location:
- kernel/generic/include/synch
- Files:
-
- 5 edited
-
rcu.h (modified) (4 diffs)
-
rcu_types.h (modified) (5 diffs)
-
spinlock.h (modified) (2 diffs)
-
waitq.h (modified) (2 diffs)
-
workqueue.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/synch/rcu.h
r3061bc1 ra35b458 147 147 compiler_barrier(); 148 148 THE->rcu_nesting -= RCU_CNT_INC; 149 149 150 150 if (RCU_WAS_PREEMPTED == THE->rcu_nesting) { 151 151 _rcu_preempted_unlock(); … … 164 164 { 165 165 assert(PREEMPTION_DISABLED || interrupts_disabled()); 166 166 167 167 /* 168 168 * A new GP was started since the last time we passed a QS. … … 225 225 assert(CPU); 226 226 preemption_disable(); 227 227 228 228 if (0 == --CPU->rcu.nesting_cnt) { 229 229 _rcu_record_qs(); 230 230 231 231 /* 232 232 * The thread was preempted while in a critical section or … … 238 238 } 239 239 } 240 240 241 241 preemption_enable(); 242 242 } -
kernel/generic/include/synch/rcu_types.h
r3061bc1 ra35b458 70 70 */ 71 71 bool is_delaying_gp; 72 72 73 73 /** True if we should signal the detector that we exited a reader section. 74 74 * … … 85 85 size_t nesting_cnt; 86 86 #endif 87 87 88 88 /** Callbacks to invoke once the current grace period ends, ie cur_cbs_gp. 89 89 * Accessed by the local reclaimer only. … … 118 118 */ 119 119 rcu_gp_t next_cbs_gp; 120 120 121 121 /** Positive if there are callbacks pending in arriving_cbs. */ 122 122 semaphore_t arrived_flag; 123 123 124 124 /** The reclaimer should expedite GPs for cbs in arriving_cbs. */ 125 125 bool expedite_arriving; 126 126 127 127 /** Protected by global rcu.barrier_mtx. */ 128 128 rcu_item_t barrier_item; 129 129 130 130 /** Interruptable attached reclaimer thread. */ 131 131 struct thread *reclaimer_thr; 132 132 133 133 /* Some statistics. */ 134 134 size_t stat_max_cbs; … … 150 150 151 151 #ifdef RCU_PREEMPT_PODZIMEK 152 152 153 153 /** True if the thread was preempted in a reader section. 154 154 * … … 160 160 bool was_preempted; 161 161 #endif 162 162 163 163 /** Preempted threads link. Access with rcu.prempt_lock.*/ 164 164 link_t preempt_link; -
kernel/generic/include/synch/spinlock.h
r3061bc1 ra35b458 47 47 typedef struct spinlock { 48 48 atomic_t val; 49 49 50 50 #ifdef CONFIG_DEBUG_SPINLOCK 51 51 const char *name; … … 130 130 */ 131 131 CS_LEAVE_BARRIER(); 132 132 133 133 atomic_set(&lock->val, 0); 134 134 preemption_enable(); -
kernel/generic/include/synch/waitq.h
r3061bc1 ra35b458 55 55 */ 56 56 IRQ_SPINLOCK_DECLARE(lock); 57 57 58 58 /** 59 59 * Number of waitq_wakeup() calls that didn't find a thread to wake up. … … 61 61 */ 62 62 int missed_wakeups; 63 63 64 64 /** List of sleeping threads for which there was no missed_wakeup. */ 65 65 list_t sleepers; -
kernel/generic/include/synch/workqueue.h
r3061bc1 ra35b458 49 49 link_t queue_link; 50 50 work_func_t func; 51 51 52 52 #ifdef CONFIG_DEBUG 53 53 /* Magic number for integrity checks. */
Note:
See TracChangeset
for help on using the changeset viewer.
