From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] kvm uses smp_call_function_mask() in kvm_flush_remote_tlbs() Date: Mon, 22 Oct 2007 20:36:04 +0200 Message-ID: <471CED94.5070502@qumranet.com> References: <11930635871488-git-send-email-Laurent.Vivier@bull.net> <471CCEC8.9060200@de.ibm.com> <471CD876.5020404@qumranet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, Laurent Vivier To: carsteno-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org Return-path: In-Reply-To: <471CD876.5020404-atKUWr5tajBWk0Htik3J/w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Avi Kivity wrote: > Carsten Otte wrote: > >> Laurent Vivier wrote: >> >> >>> This patches can be applied only on kvm-updates-2.6.24 and kvm-updates-2.6.25 >>> as it needs smp_call_function_mask(). >>> >>> >> There's one thing I don't understand: How is this locked versus cpu >> hotplug? Isn't there an obvious race involved where a cpu unplugged >> after cpu_set()? >> >> >> > > A cpu unplug first evicts all tasks from the victim cpu. During this > process, it calls kvm via a hotplug notifier, which notifier calls > vcpu_clear() for all vcpus that are resident on that cpu. So after it > runs, there won't be any vcpus on the dead cpu. > > The notifier is called from within stop_machine_run(), which ensures > that no task is running on any cpu, so by the time the cpu is being > unplugged, any concurrent call to kvm_flush_remote_tlbs() will have ended. > > It's a miracle that it works. > > Miracle indeed. We need to disable preemption in kvm_flush_remote_tlbs(), otherwise the whole story falls apart. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/