From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Graf Subject: Re: [PATCH 01/15] KVM: PPC: Make register read/write wrappers always work Date: Mon, 08 Mar 2010 14:44:54 +0100 Message-ID: <4B94FF56.9060200@suse.de> References: <1267807842-3751-1-git-send-email-agraf@suse.de> <1267807842-3751-2-git-send-email-agraf@suse.de> <4B94FE41.1040904@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Avi Kivity Return-path: In-Reply-To: <4B94FE41.1040904-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Sender: kvm-ppc-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: kvm.vger.kernel.org Avi Kivity wrote: > On 03/05/2010 06:50 PM, Alexander Graf wrote: >> We have wrappers to do for example gpr read/write accesses with, >> because the contents of registers could be either in the PACA >> or in the VCPU struct. >> >> There's nothing that says we have to have the guest vcpu loaded >> when using these wrappers though, so let's introduce a flag that >> tells us whether we're inside a vcpu_load context. >> >> > > On x86 we always access registers within vcpu_load() context. That > simplifies things. Does this not apply here? > > Even so, sometimes guest registers are present on the cpu, and > sometimes in shadow variables (for example, msrs might be loaded or > not). The approach here is to always unload and access the variable > data. See for example vmx_set_msr() calling vmx_load_host_state() > before accessing msrs. > > Seems like this could reduce the if () tree? Well - it would probably render this particular patch void. In fact, I think it is already useless thanks to the other "always do vcpu_load" patch. As far as the already existing if goes, we can't really get rid of that. I want to be fast in the instruction emulation. Copying around the registers won't help there. Alex