Rev 2089 | Rev 2183 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2089 | Rev 2118 | ||
|---|---|---|---|
| Line 142... | Line 142... | ||
| 142 | if (!THREAD->saved_fpu_context) { |
142 | if (!THREAD->saved_fpu_context) { |
| 143 | /* Might sleep */ |
143 | /* Might sleep */ |
| 144 | spinlock_unlock(&THREAD->lock); |
144 | spinlock_unlock(&THREAD->lock); |
| 145 | spinlock_unlock(&CPU->lock); |
145 | spinlock_unlock(&CPU->lock); |
| 146 | THREAD->saved_fpu_context = |
146 | THREAD->saved_fpu_context = |
| 147 | slab_alloc(fpu_context_slab, 0); |
147 | (fpu_context_t *) slab_alloc(fpu_context_slab, 0); |
| 148 | /* We may have switched CPUs during slab_alloc */ |
148 | /* We may have switched CPUs during slab_alloc */ |
| 149 | goto restart; |
149 | goto restart; |
| 150 | } |
150 | } |
| 151 | fpu_init(); |
151 | fpu_init(); |
| 152 | THREAD->fpu_context_exists = 1; |
152 | THREAD->fpu_context_exists = 1; |
| Line 535... | Line 535... | ||
| 535 | * |
535 | * |
| 536 | */ |
536 | */ |
| 537 | void kcpulb(void *arg) |
537 | void kcpulb(void *arg) |
| 538 | { |
538 | { |
| 539 | thread_t *t; |
539 | thread_t *t; |
| 540 | int count, average, i, j, k = 0; |
540 | int count, average, j, k = 0; |
| - | 541 | unsigned int i; |
|
| 541 | ipl_t ipl; |
542 | ipl_t ipl; |
| 542 | 543 | ||
| 543 | /* |
544 | /* |
| 544 | * Detach kcpulb as nobody will call thread_join_timeout() on it. |
545 | * Detach kcpulb as nobody will call thread_join_timeout() on it. |
| 545 | */ |
546 | */ |
| Line 687... | Line 688... | ||
| 687 | 688 | ||
| 688 | /** Print information about threads & scheduler queues */ |
689 | /** Print information about threads & scheduler queues */ |
| 689 | void sched_print_list(void) |
690 | void sched_print_list(void) |
| 690 | { |
691 | { |
| 691 | ipl_t ipl; |
692 | ipl_t ipl; |
| 692 | int cpu,i; |
693 | unsigned int cpu, i; |
| 693 | runq_t *r; |
694 | runq_t *r; |
| 694 | thread_t *t; |
695 | thread_t *t; |
| 695 | link_t *cur; |
696 | link_t *cur; |
| 696 | 697 | ||
| 697 | /* We are going to mess with scheduler structures, |
698 | /* We are going to mess with scheduler structures, |
| 698 | * let's not be interrupted */ |
699 | * let's not be interrupted */ |
| 699 | ipl = interrupts_disable(); |
700 | ipl = interrupts_disable(); |
| 700 | for (cpu=0;cpu < config.cpu_count; cpu++) { |
701 | for (cpu = 0; cpu < config.cpu_count; cpu++) { |
| 701 | 702 | ||
| 702 | if (!cpus[cpu].active) |
703 | if (!cpus[cpu].active) |
| 703 | continue; |
704 | continue; |
| 704 | 705 | ||
| 705 | spinlock_lock(&cpus[cpu].lock); |
706 | spinlock_lock(&cpus[cpu].lock); |