Lines Matching defs:processor

49 #include <kern/processor.h>
76 sched_fixedpriority_processor_init(processor_t processor);
85 sched_fixedpriority_choose_thread(processor_t processor,
97 processor_t processor,
103 processor_t processor,
109 processor_t processor);
113 processor_t processor,
117 sched_fixedpriority_processor_queue_empty(processor_t processor);
120 sched_fixedpriority_processor_queue_has_priority(processor_t processor,
128 sched_fixedpriority_processor_csw_check(processor_t processor);
152 sched_fixedpriority_should_current_thread_rechoose_processor(processor_t processor);
155 sched_fixedpriority_processor_runq_count(processor_t processor);
158 sched_fixedpriority_processor_runq_stats_count_sum(processor_t processor);
249 static inline run_queue_t runq_for_processor(processor_t processor)
252 return &processor->processor_set->pset_runq;
254 return &processor->runq;
258 static inline void runq_consider_incr_bound_count(processor_t processor, thread_t thread)
263 assert(thread->bound_processor == processor);
266 processor->processor_set->pset_runq_bound_count++;
268 processor->runq_bound_count++;
272 static inline void runq_consider_decr_bound_count(processor_t processor, thread_t thread)
277 assert(thread->bound_processor == processor);
280 processor->processor_set->pset_runq_bound_count--;
282 processor->runq_bound_count--;
335 sched_fixedpriority_processor_init(processor_t processor)
338 run_queue_init(&processor->runq);
340 processor->runq_bound_count = 0;
379 sched_fixedpriority_choose_thread(processor_t processor,
384 thread = choose_thread(processor, runq_for_processor(processor), priority);
386 runq_consider_decr_bound_count(processor, thread);
415 processor_t processor,
418 return choose_processor(pset, processor, thread);
422 processor_t processor,
426 run_queue_t rq = runq_for_processor(processor);
430 thread->runq = processor;
431 runq_consider_incr_bound_count(processor, thread);
438 processor_t processor)
440 processor_set_t pset = processor->processor_set;
447 while ((thread = sched_fixedpriority_choose_thread(processor, IDLEPRI)) != THREAD_NULL) {
456 sched_fixedpriority_processor_enqueue(processor, thread, SCHED_TAILQ);
472 processor_t processor,
478 rqlock = &processor->processor_set->sched_lock;
479 rq = runq_for_processor(processor);
482 if (processor == thread->runq) {
487 runq_consider_decr_bound_count(processor, thread);
496 processor = PROCESSOR_NULL;
501 return (processor != PROCESSOR_NULL);
505 sched_fixedpriority_processor_queue_empty(processor_t processor)
511 int count = runq_for_processor(processor)->count;
514 processor_set_t pset = processor->processor_set;
517 count += processor->runq_bound_count;
524 sched_fixedpriority_processor_queue_has_priority(processor_t processor,
529 return runq_for_processor(processor)->highq >= priority;
531 return runq_for_processor(processor)->highq > priority;
551 sched_fixedpriority_processor_csw_check(processor_t processor)
556 runq = runq_for_processor(processor);
557 if (first_timeslice(processor)) {
558 has_higher = (runq->highq > processor->current_pri);
560 has_higher = (runq->highq >= processor->current_pri);
566 if (processor->active_thread && thread_eager_preemption(processor->active_thread))
570 } else if (processor->current_thmode == TH_MODE_FAIRSHARE) {
571 if (!sched_fixedpriority_processor_queue_empty(processor)) {
574 } else if ((!first_timeslice(processor)) && SCHED(fairshare_runq_count)() > 0) {
772 sched_fixedpriority_should_current_thread_rechoose_processor(processor_t processor __unused)
779 sched_fixedpriority_processor_runq_count(processor_t processor)
781 return runq_for_processor(processor)->count;
785 sched_fixedpriority_processor_runq_stats_count_sum(processor_t processor)
787 return runq_for_processor(processor)->runq_stats.count_sum;