diff --git a/xen/common/domain.c b/xen/common/domain.c index 0902a15e8d..a8e203a1c1 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -935,7 +935,7 @@ static void complete_domain_destroy(struct rcu_head *head) struct domain *d = container_of(head, struct domain, rcu); struct vcpu *v; int i; - + printk("complete_domain_destroy BEGIN\n"); /* * Flush all state for the vCPU previously having run on the current CPU. * This is in particular relevant for x86 HVM ones on VMX, so that this @@ -991,6 +991,7 @@ static void complete_domain_destroy(struct rcu_head *head) _domain_destroy(d); send_global_virq(VIRQ_DOM_EXC); + printk("complete_domain_destroy END\n"); } /* Release resources belonging to task @p. */ diff --git a/xen/common/rcupdate.c b/xen/common/rcupdate.c index a9c24b5889..1bdf4ecc53 100644 --- a/xen/common/rcupdate.c +++ b/xen/common/rcupdate.c @@ -662,7 +662,6 @@ void rcu_quiet_enter() * Se the comment before cpumask_andnot() in rcu_start_batch(). */ smp_mb(); - cb_timer_start(); cb_timer_start(cpu); } diff --git a/xen/common/schedule.c b/xen/common/schedule.c index 6d24a3a135..4a63c11ed1 100644 --- a/xen/common/schedule.c +++ b/xen/common/schedule.c @@ -3111,14 +3111,12 @@ void schedule_dump(struct cpupool *c) void sched_tick_suspend(void) { - rcu_idle_enter(smp_processor_id()); - rcu_idle_timer_start(); + rcu_quiet_enter(); } void sched_tick_resume(void) { - rcu_idle_timer_stop(); - rcu_idle_exit(smp_processor_id()); + rcu_quiet_exit(); } void wait(void)