From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: Re: [patch 0/3]Enable CMCI (Corrected Machine Check Error Interrupt) for Intel CPUs Date: Wed, 24 Dec 2008 15:38:22 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Jiang, Yunhong" , "Ke, Liping" Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On 24/12/2008 15:08, "Jiang, Yunhong" wrote: >> Every CPU will have IRQs disabled on entry to the on_each_cpu() IPI >> function. I couldn't mean much else -- for example, it's not >> even valid for >> the caller of on_each_cpu() to enter it with IRQs disabled. > > Currently on_each_cpu() has no gurantee that the fn() will be called with all > CPU has entered the IPI. For example, maybe on CPU has been working on the > fn() while the IPI is still pending on other CPU. In which case you can explicitly rendezvous in the handler, as we do for time_calibration_rendezvous(). Notice there that we snapshot cpu_online_map and use that as cpumask argument to on_selected_cpus() and to count CPUs into a barrier. If you absolutely need all CPUs to have IRQs disabled before you start your work on any CPU, that's the way to do it. -- Keir