Changes in kernel/generic/src/interrupt/interrupt.c [b584cd4:decfbe56] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/interrupt/interrupt.c
rb584cd4 rdecfbe56 99 99 void exc_dispatch(unsigned int n, istate_t *istate) 100 100 { 101 ASSERT(CPU); 102 101 103 #if (IVT_ITEMS > 0) 102 104 ASSERT(n < IVT_ITEMS); … … 110 112 } 111 113 114 /* Account CPU usage if it has waked up from sleep */ 115 irq_spinlock_lock(&CPU->lock, false); 116 if (CPU->idle) { 117 uint64_t now = get_cycle(); 118 CPU->idle_cycles += now - CPU->last_cycle; 119 CPU->last_cycle = now; 120 CPU->idle = false; 121 } 122 irq_spinlock_unlock(&CPU->lock, false); 123 112 124 uint64_t begin_cycle = get_cycle(); 113 125 … … 131 143 uint64_t end_cycle = get_cycle(); 132 144 145 irq_spinlock_lock(&exctbl_lock, false); 133 146 exc_table[n].cycles += end_cycle - begin_cycle; 134 147 exc_table[n].count++; 148 irq_spinlock_unlock(&exctbl_lock, false); 135 149 136 150 /* Do not charge THREAD for exception cycles */
Note:
See TracChangeset
for help on using the changeset viewer.