Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
diff -r 6f07d9ac1e7c -r 1c9288cd2af3 xen/common/schedule.c
--- a/xen/common/schedule.c Thu Aug 05 14:41:14 2010 +0100
+++ b/xen/common/schedule.c Fri Aug 06 15:41:56 2010 +0100
@@ -641,6 +641,12 @@
/* 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;
diff -r 6f07d9ac1e7c -r 1c9288cd2af3 xen/include/xen/sched-if.h
--- a/xen/include/xen/sched-if.h Thu Aug 05 14:41:14 2010 +0100
+++ b/xen/include/xen/sched-if.h Fri Aug 06 15:41:56 2010 +0100
@@ -107,6 +107,7 @@
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,
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|