|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: [PATCH] [RFC] Fix a small window on CPU online/offline
On 02/04/2010 04:31, "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx> wrote:
> Have a short discussion with Kevin, maybe we can sync the state in
> cpu_disable_scheduler if current is idle, and then set a flag so that we will
> not sync again in context siwtch later. If the current is not idle, we can
> leave the context switch to do the sync for us. I will do more investigate to
> see how many changes are needed.
Hm, actually maybe that could work. You might not even need a flag in case
current is non-idle in cpu_disable_scheduler(). It might suffice to force
context_switch() to do full context switch synchronously when the CPU is
going offline (see appended patch). I was thinking there was a race as soon
as the cpu is cleared from cpu_online_map, but actually the problem occurs
only once the vcpu is descheduled, so if we can synchronously sync its state
before calling context_saved(), perhaps we are fine.
This could be a very small patch after all! :-)
-- Keir
--- a/xen/arch/x86/domain.c Thu Apr 01 09:55:27 2010 +0100
+++ b/xen/arch/x86/domain.c Fri Apr 02 08:12:14 2010 +0100
@@ -1442,7 +1442,8 @@
set_current(next);
- if ( (per_cpu(curr_vcpu, cpu) == next) || is_idle_vcpu(next) )
+ if ( (per_cpu(curr_vcpu, cpu) == next) ||
+ (is_idle_vcpu(next) && !cpu_is_offline(cpu)) )
{
local_irq_enable();
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|