From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Herrenschmidt Subject: Re: [PATCH] kvm/ppc: interrupt disabling fixes Date: Thu, 09 May 2013 12:51:54 +1000 Message-ID: <1368067914.25488.154.camel@pasglop> References: <1368059739.3398.64@snotra> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: "tiejun.chen" , Alexander Graf , kvm-ppc@vger.kernel.org, kvm@vger.kernel.org, Mihai Caraman To: Scott Wood Return-path: In-Reply-To: <1368059739.3398.64@snotra> Sender: kvm-ppc-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On Wed, 2013-05-08 at 19:35 -0500, Scott Wood wrote: > Sigh, and then there's this: > > #ifdef CONFIG_PPC64 > /* lazy EE magic */ > hard_irq_disable(); > if (lazy_irq_pending()) { > /* Got an interrupt in between, try again */ > local_irq_enable(); > hard_irq_disable(); > kvm_guest_exit(); > continue; > } > > trace_hardirqs_on(); > #endif > > Alex, could you be a bit more descriptive than "magic" please? Can > this chunk of code be removed if we do the other changes being > discussed? Or should we leave this in and drop the pre-enter > hard_irq_disable portion of the proposed changes? > > Why are you calling trace_hardirqs_on() here and not in > kvmppc_lazy_ee_enable()? Why are you calling kvm_guest_exit() before > you've called kvm_guest_enter()? I think I originated that magic... it more/less mimmics prep_for_idle, the goal was to hard disable (because we had soft disabled earlier) and check if anything happened in between... if it did, abort, and try again, but it's a bit fishy really. Ben.