aboutsummaryrefslogtreecommitdiffstats
path: root/xen
diff options
context:
space:
mode:
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2004-05-31 22:43:14 +0000
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2004-05-31 22:43:14 +0000
commitec52a9cf62bf69bfa0a751ca60ff6f44471e2fab (patch)
tree19366d6b7c0fd56ec04357e5e0c3b7864e6af1f1 /xen
parentf8f33ce162f35162e658c73bb28d5e507ce2678f (diff)
downloadxen-ec52a9cf62bf69bfa0a751ca60ff6f44471e2fab.tar.gz
xen-ec52a9cf62bf69bfa0a751ca60ff6f44471e2fab.tar.bz2
xen-ec52a9cf62bf69bfa0a751ca60ff6f44471e2fab.zip
bitkeeper revision 1.924 (40bbb502xR03c4VC3QbKW-RZeIrXzg)
Cset exclude: mwilli2@equilibrium.research.intel-research.net|ChangeSet|20040521100822|20051
Diffstat (limited to 'xen')
-rw-r--r--xen/common/sched_bvt.c4
-rw-r--r--xen/common/schedule.c6
2 files changed, 3 insertions, 7 deletions
diff --git a/xen/common/sched_bvt.c b/xen/common/sched_bvt.c
index a3ac2c80bc..a4b76b42f5 100644
--- a/xen/common/sched_bvt.c
+++ b/xen/common/sched_bvt.c
@@ -170,7 +170,6 @@ void bvt_wake_up(struct task_struct *p)
static void bvt_do_block(struct task_struct *p)
{
BVT_INFO(p)->warpback = 0;
- __del_from_runqueue(p);
}
/* Control the scheduler. */
@@ -277,8 +276,7 @@ static task_slice_t bvt_do_schedule(s_time_t now)
__calc_evt(prev_inf);
- if( __task_on_runqueue(prev))
- __del_from_runqueue(prev);
+ __del_from_runqueue(prev);
if ( likely(prev->state == TASK_RUNNING) )
__add_to_runqueue_tail(prev);
diff --git a/xen/common/schedule.c b/xen/common/schedule.c
index 6fbaf56a9a..b5e4219d6c 100644
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -224,7 +224,6 @@ long do_block(void)
ASSERT(current->domain != IDLE_DOMAIN_ID);
current->shared_info->vcpu_data[0].evtchn_upcall_mask = 0;
current->state = TASK_INTERRUPTIBLE;
- SCHED_OP(do_block, current);
TRACE_2D(TRC_SCHED_BLOCK, current->domain, current);
__enter_scheduler();
return 0;
@@ -462,10 +461,9 @@ asmlinkage void __enter_scheduler(void)
{
/* this check is needed to avoid a race condition */
if ( signal_pending(prev) )
- {
prev->state = TASK_RUNNING;
- SCHED_OP(wake_up, prev);
- }
+ else
+ SCHED_OP(do_block, prev);
}
prev->cpu_time += now - prev->lastschd;