Changes in kernel/generic/src/interrupt/interrupt.c [dfb16c4:11909ce3] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/interrupt/interrupt.c
rdfb16c4 r11909ce3 114 114 115 115 /* Account user cycles */ 116 if (THREAD) { 117 irq_spinlock_lock(&THREAD->lock, false); 116 if (THREAD) 118 117 thread_update_accounting(true); 119 irq_spinlock_unlock(&THREAD->lock, false);120 }121 118 122 119 /* Account CPU usage if it woke up from sleep */ 123 if (CPU && CPU ->idle) {120 if (CPU && CPU_LOCAL->idle) { 124 121 uint64_t now = get_cycle(); 125 atomic_time_increment(&CPU->idle_cycles, now - CPU ->last_cycle);126 CPU ->last_cycle = now;127 CPU ->idle = false;122 atomic_time_increment(&CPU->idle_cycles, now - CPU_LOCAL->last_cycle); 123 CPU_LOCAL->last_cycle = now; 124 CPU_LOCAL->idle = false; 128 125 } 129 126 … … 155 152 156 153 /* Do not charge THREAD for exception cycles */ 157 if (THREAD) { 158 irq_spinlock_lock(&THREAD->lock, false); 154 if (THREAD) 159 155 THREAD->last_cycle = end_cycle; 160 irq_spinlock_unlock(&THREAD->lock, false);161 }162 156 #else 163 157 panic("No space for any exception handler, yet we want to handle some exception.");
Note:
See TracChangeset
for help on using the changeset viewer.