Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/proc/scheduler.c

    re1326cf r1558d85  
    5252#include <atomic.h>
    5353#include <synch/spinlock.h>
     54#include <synch/workqueue.h>
     55#include <synch/rcu.h>
    5456#include <config.h>
    5557#include <context.h>
     
    6163#include <cpu.h>
    6264#include <print.h>
     65#include <log.h>
    6366#include <debug.h>
    6467#include <stacktrace.h>
     
    8689{
    8790        before_thread_runs_arch();
     91        rcu_before_thread_runs();
    8892       
    8993#ifdef CONFIG_FPU_LAZY
     
    126130static void after_thread_ran(void)
    127131{
     132        workq_after_thread_ran();
     133        rcu_after_thread_ran();
    128134        after_thread_ran_arch();
    129135}
     
    218224                goto loop;
    219225        }
     226
     227        ASSERT(!CPU->idle);
    220228       
    221229        unsigned int i;
     
    397405        ASSERT((!THREAD) || (irq_spinlock_locked(&THREAD->lock)));
    398406        ASSERT(CPU != NULL);
     407        ASSERT(interrupts_disabled());
    399408       
    400409        /*
     
    420429               
    421430                case Exiting:
     431                        rcu_thread_exiting();
    422432repeat:
    423433                        if (THREAD->detached) {
     
    517527       
    518528#ifdef SCHEDULER_VERBOSE
    519         printf("cpu%u: tid %" PRIu64 " (priority=%d, ticks=%" PRIu64
    520             ", nrdy=%ld)\n", CPU->id, THREAD->tid, THREAD->priority,
     529        log(LF_OTHER, LVL_DEBUG,
     530            "cpu%u: tid %" PRIu64 " (priority=%d, ticks=%" PRIu64
     531            ", nrdy=%" PRIua ")", CPU->id, THREAD->tid, THREAD->priority,
    521532            THREAD->ticks, atomic_get(&CPU->nrdy));
    522533#endif
     
    663674                               
    664675#ifdef KCPULB_VERBOSE
    665                                 printf("kcpulb%u: TID %" PRIu64 " -> cpu%u, "
    666                                     "nrdy=%ld, avg=%ld\n", CPU->id, t->tid,
     676                                log(LF_OTHER, LVL_DEBUG,
     677                                    "kcpulb%u: TID %" PRIu64 " -> cpu%u, "
     678                                    "nrdy=%ld, avg=%ld", CPU->id, t->tid,
    667679                                    CPU->id, atomic_get(&CPU->nrdy),
    668680                                    atomic_get(&nrdy) / config.cpu_active);
     
    739751                       
    740752                        printf("\trq[%u]: ", i);
    741                         list_foreach(cpus[cpu].rq[i].rq, cur) {
    742                                 thread_t *thread = list_get_instance(cur,
    743                                     thread_t, rq_link);
     753                        list_foreach(cpus[cpu].rq[i].rq, rq_link, thread_t,
     754                            thread) {
    744755                                printf("%" PRIu64 "(%s) ", thread->tid,
    745756                                    thread_states[thread->state]);
Note: See TracChangeset for help on using the changeset viewer.