[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v1 08/16] xen: Credit1: reorg csched_schedule() code a bit.
This is pure code refactoring, with the purpose of isolating code movement. No functional change intended. Signed-off-by: Dario Faggioli <dfaggioli@xxxxxxxx> --- Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx> --- xen/common/sched_credit.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/xen/common/sched_credit.c b/xen/common/sched_credit.c index e218eb6986..cd5524c3ba 100644 --- a/xen/common/sched_credit.c +++ b/xen/common/sched_credit.c @@ -1859,8 +1859,8 @@ csched_schedule( struct csched_vcpu * const scurr = CSCHED_VCPU(current); struct csched_private *prv = CSCHED_PRIV(ops); struct csched_vcpu *snext; - struct task_slice ret; - s_time_t runtime, tslice; + struct task_slice ret = { .migrated = 0 }; + s_time_t runtime, tslice = prv->tslice; SCHED_STAT_CRANK(schedule); CSCHED_VCPU_CHECK(current); @@ -1949,11 +1949,8 @@ csched_schedule( __trace_var(TRC_CSCHED_RATELIMIT, 1, sizeof(d), (unsigned char *)&d); } - - ret.migrated = 0; - goto out; + goto out_rlim; } - tslice = prv->tslice; /* * Select next runnable local VCPU (ie top of local runq) @@ -1965,21 +1962,17 @@ csched_schedule( BUG_ON( is_idle_vcpu(current) || list_empty(runq) ); } - snext = __runq_elem(runq->next); - ret.migrated = 0; - /* Tasklet work (which runs in idle VCPU context) overrides all else. */ - if ( tasklet_work_scheduled ) + if ( unlikely(tasklet_work_scheduled) ) { TRACE_0D(TRC_CSCHED_SCHED_TASKLET); snext = CSCHED_VCPU(idle_vcpu[cpu]); snext->pri = CSCHED_PRI_TS_BOOST; + runq_remove(snext); + goto out; } - /* - * Clear YIELD flag before scheduling out - */ - clear_bit(CSCHED_FLAG_VCPU_YIELD, &scurr->flags); + snext = __runq_elem(runq->next); /* * SMP Load balance: @@ -1994,6 +1987,7 @@ csched_schedule( else snext = csched_load_balance(prv, cpu, snext, &ret.migrated); + out: /* * Update idlers mask if necessary. When we're idling, other CPUs * will tickle us when they get extra work. @@ -2015,7 +2009,12 @@ csched_schedule( if ( !is_idle_vcpu(snext->vcpu) ) snext->start_time += now; -out: + /* + * Clear YIELD flag before scheduling out + */ + clear_bit(CSCHED_FLAG_VCPU_YIELD, &scurr->flags); + + out_rlim: /* * Return task to run next... */ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |