On 03/08/2010 03:53 PM, Alexander Graf wrote:
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?
During emulation we're always in VCPU_RUN, so the vcpu is loaded.
Do you mean something like:
read_register(num) {
vcpu_load();
read register from PACA(num);
vcpu_put();
}
? Does vcpu_load incur overhead when it doesnt' need to do anything?
If the vcpu is always loaded, this would be redundant, no?
The situation is that a piece of data is in one of two places. Instead
of checking and loading it from either, force it to the place where it
normally is, and load it from there.
So instead of
if (x)
y = p1;
else
y = p2;
in a zillion places, just do
force_to_p2(); // the common case anyway
y = p2;
which results in cleaner code. Assuming that you have a common case of
course.
--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html