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 19:05:58 +0200 Message-ID: <471CD876.5020404@qumranet.com> References: <11930635871488-git-send-email-Laurent.Vivier@bull.net> <471CCEC8.9060200@de.ibm.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: <471CCEC8.9060200-tA70FqPdS9bQT0dZR+AlfA@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 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. -- 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/