scheduler: Add a per-scheduler yield callback

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
This commit is contained in:
Keir Fraser committed 2010-08-09 16:35:27 +01:00
1 parent 22bcc5f006
commit 49094cac1b
2 files changed
+7

No files matched your search

+6
View File
@@ -642,6 +642,12 @@ static long do_poll(struct sched_poll *sched_poll)
/* Voluntarily yield the processor for this allocation. */
static long do_yield(void)
{
struct vcpu * v=current;
vcpu_schedule_lock_irq(v);
SCHED_OP(VCPU2OP(v), yield, v);
vcpu_schedule_unlock_irq(v);
TRACE_2D(TRC_SCHED_YIELD, current->domain->domain_id, current->vcpu_id);
raise_softirq(SCHEDULE_SOFTIRQ);
return 0;
+1
View File
@@ -107,6 +107,7 @@ struct scheduler {
void (*sleep) (const struct scheduler *, struct vcpu *);
void (*wake) (const struct scheduler *, struct vcpu *);
void (*yield) (const struct scheduler *, struct vcpu *);
void (*context_saved) (const struct scheduler *, struct vcpu *);
struct task_slice (*do_schedule) (const struct scheduler *, s_time_t,
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.