Rev 1187 | Rev 1221 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1187 | Rev 1196 | ||
|---|---|---|---|
| Line 447... | Line 447... | ||
| 447 | } |
447 | } |
| 448 | 448 | ||
| 449 | THREAD->state = Running; |
449 | THREAD->state = Running; |
| 450 | 450 | ||
| 451 | #ifdef SCHEDULER_VERBOSE |
451 | #ifdef SCHEDULER_VERBOSE |
| 452 | printf("cpu%d: tid %d (priority=%d,ticks=%d,nrdy=%d)\n", CPU->id, THREAD->tid, THREAD->priority, THREAD->ticks, atomic_get(&CPU->nrdy)); |
452 | printf("cpu%d: tid %d (priority=%d,ticks=%lld,nrdy=%ld)\n", CPU->id, THREAD->tid, THREAD->priority, THREAD->ticks, atomic_get(&CPU->nrdy)); |
| 453 | #endif |
453 | #endif |
| 454 | 454 | ||
| 455 | /* |
455 | /* |
| 456 | * Some architectures provide late kernel PA2KA(identity) |
456 | * Some architectures provide late kernel PA2KA(identity) |
| 457 | * mapping in a page fault handler. However, the page fault |
457 | * mapping in a page fault handler. However, the page fault |
| Line 567... | Line 567... | ||
| 567 | /* |
567 | /* |
| 568 | * Ready t on local CPU |
568 | * Ready t on local CPU |
| 569 | */ |
569 | */ |
| 570 | spinlock_lock(&t->lock); |
570 | spinlock_lock(&t->lock); |
| 571 | #ifdef KCPULB_VERBOSE |
571 | #ifdef KCPULB_VERBOSE |
| 572 | printf("kcpulb%d: TID %d -> cpu%d, nrdy=%d, avg=%d\n", CPU->id, t->tid, CPU->id, atomic_get(&CPU->nrdy), atomic_get(&nrdy) / config.cpu_active); |
572 | printf("kcpulb%d: TID %d -> cpu%d, nrdy=%ld, avg=%nd\n", CPU->id, t->tid, CPU->id, atomic_get(&CPU->nrdy), atomic_get(&nrdy) / config.cpu_active); |
| 573 | #endif |
573 | #endif |
| 574 | t->flags |= X_STOLEN; |
574 | t->flags |= X_STOLEN; |
| 575 | t->state = Entering; |
575 | t->state = Entering; |
| 576 | spinlock_unlock(&t->lock); |
576 | spinlock_unlock(&t->lock); |
| 577 | 577 | ||
| Line 631... | Line 631... | ||
| 631 | 631 | ||
| 632 | if (!cpus[cpu].active) |
632 | if (!cpus[cpu].active) |
| 633 | continue; |
633 | continue; |
| 634 | 634 | ||
| 635 | spinlock_lock(&cpus[cpu].lock); |
635 | spinlock_lock(&cpus[cpu].lock); |
| 636 | printf("cpu%d: address=%P, nrdy=%d, needs_relink=%d\n", |
636 | printf("cpu%d: address=%P, nrdy=%ld, needs_relink=%ld\n", |
| 637 | cpus[cpu].id, &cpus[cpu], atomic_get(&cpus[cpu].nrdy), cpus[cpu].needs_relink); |
637 | cpus[cpu].id, &cpus[cpu], atomic_get(&cpus[cpu].nrdy), cpus[cpu].needs_relink); |
| 638 | 638 | ||
| 639 | for (i=0; i<RQ_COUNT; i++) { |
639 | for (i=0; i<RQ_COUNT; i++) { |
| 640 | r = &cpus[cpu].rq[i]; |
640 | r = &cpus[cpu].rq[i]; |
| 641 | spinlock_lock(&r->lock); |
641 | spinlock_lock(&r->lock); |