spinlock_t *lock;
unsigned long flags;
- /* This is safe because vc isn't yet being scheduled */
- vc->processor = csched_cpu_pick(ops, vc);
-
lock = vcpu_schedule_lock_irqsave(vc, &flags);
if ( !__vcpu_on_runq(svc) && vcpu_runnable(vc) && !vc->is_running )
uint16_t nr_vcpus;
};
-static int csched2_cpu_pick(const struct scheduler *ops, struct vcpu *vc);
/*
* Time-to-credit, credit-to-time.
/* FIXME: Do we need the private lock here? */
list_add_tail(&svc->sdom_elem, &svc->sdom->vcpu);
- /* csched2_cpu_pick() expects the pcpu lock to be held */
- lock = vcpu_schedule_lock_irq(vc);
-
- vc->processor = csched2_cpu_pick(ops, vc);
-
- spin_unlock_irq(lock);
-
+ /* Add vcpu to runqueue of initial processor */
lock = vcpu_schedule_lock_irq(vc);
- /* Add vcpu to runqueue of initial processor */
runq_assign(ops, vc);
vcpu_schedule_unlock_irq(lock, vc);
struct domain *dom; /* pointer to upper domain */
};
-static int rt_cpu_pick(const struct scheduler *ops, struct vcpu *vc);
-
/*
* Useful inline functions
*/
if ( is_idle_vcpu(vc) )
return;
- /* This is safe because vc isn't yet being scheduled */
- vc->processor = rt_cpu_pick(ops, vc);
-
lock = vcpu_schedule_lock_irq(vc);
now = NOW();