Re: [PATCH 01/15] KVM: PPC: Make register read/write wrappers always work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/08/2010 03:44 PM, Alexander Graf wrote:
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.

So do it the other way around. Always load the registers (of course, do nothing if already loaded) and then access them in just one way. I assume during emulation the registers will always be loaded?

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux