From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: kvm/ia64: Fix halt emulation logic. Date: Thu, 16 Oct 2008 10:53:22 +0200 Message-ID: <48F70102.2020909@redhat.com> References: <42DFA526FC41B1429CE7279EF83C6BDC01B47EA5@pdsmsx415.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm-ia64@vger.kernel.org, kvm@vger.kernel.org To: "Zhang, Xiantao" Return-path: Received: from mx2.redhat.com ([66.187.237.31]:36652 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753193AbYJPIx1 (ORCPT ); Thu, 16 Oct 2008 04:53:27 -0400 In-Reply-To: <42DFA526FC41B1429CE7279EF83C6BDC01B47EA5@pdsmsx415.ccr.corp.intel.com> Sender: kvm-owner@vger.kernel.org List-ID: Zhang, Xiantao wrote: > Hi, Avi > This is the key fix for 2.6.28 merge. Without this patch, guest > may hang once configured with more than 2 vcpus, it is because x86 side > changed the halt handling's common logic, but it misses to change ia64 > side. > > @@ -398,8 +400,11 @@ static int handle_global_purge(struct kvm_vcpu > *vcpu, struct kvm_run *kvm_run) > > if (kvm->vcpus[i]->cpu != -1) { > call_data.vcpu = kvm->vcpus[i]; > - smp_call_function_single(kvm->vcpus[i]->cpu, > + if (kvm->vcpus[i]->cpu != smp_processor_id()) > + > smp_call_function_single(kvm->vcpus[i]->cpu, > vcpu_global_purge, &call_data, > 1); > + else > + vcpu_global_purge(&call_data); > smp_call_function_single() will call the function on the current cpu if instructed, so this change is unneeded. -- error compiling committee.c: too many arguments to function