Changes in kernel/generic/src/sysinfo/stats.c [169815e:dfa4be62] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/sysinfo/stats.c
r169815e rdfa4be62 299 299 { 300 300 assert(interrupts_disabled()); 301 assert(irq_spinlock_locked(&thread->lock));302 301 303 302 stats_thread->thread_id = thread->tid; 304 303 stats_thread->task_id = thread->task->taskid; 305 stats_thread->state = thread->state; 306 stats_thread->priority = thread->priority; 307 stats_thread->ucycles = thread->ucycles; 308 stats_thread->kcycles = thread->kcycles; 309 310 if (thread->cpu != NULL) { 304 stats_thread->state = atomic_get_unordered(&thread->state); 305 stats_thread->priority = atomic_get_unordered(&thread->priority); 306 stats_thread->ucycles = atomic_time_read(&thread->ucycles); 307 stats_thread->kcycles = atomic_time_read(&thread->kcycles); 308 309 cpu_t *cpu = atomic_get_unordered(&thread->cpu); 310 311 if (cpu != NULL) { 311 312 stats_thread->on_cpu = true; 312 stats_thread->cpu = thread->cpu->id;313 stats_thread->cpu = cpu->id; 313 314 } else 314 315 stats_thread->on_cpu = false; … … 361 362 thread_t *thread = thread_first(); 362 363 while (thread != NULL) { 363 /* Interrupts are already disabled */364 irq_spinlock_lock(&thread->lock, false);365 366 364 /* Record the statistics and increment the index */ 367 365 produce_stats_thread(thread, &stats_threads[i]); 368 366 i++; 369 370 irq_spinlock_unlock(&thread->lock, false);371 367 372 368 thread = thread_next(thread); … … 624 620 ret.data.size = sizeof(stats_thread_t); 625 621 626 /*627 * Replaced hand-over-hand locking with regular nested sections628 * to avoid weak reference leak issues.629 */630 irq_spinlock_lock(&thread->lock, false);631 622 produce_stats_thread(thread, stats_thread); 632 irq_spinlock_unlock(&thread->lock, false);633 623 634 624 irq_spinlock_unlock(&threads_lock, true);
Note:
See TracChangeset
for help on using the changeset viewer.