[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |