Avi Kivity wrote:
> Alexander Graf wrote:

[snip]

>>>>  static int kvm_resume(struct sys_device *dev)
>>>>  {
>>>> -    hardware_enable(NULL);
>>>> +    if (atomic_read(&kvm_usage_count))
>>>> +        hardware_enable(NULL);
>>>>      return 0;
>>>>  }
>>>>         
>>> Move the test to hardware_enable()?  It's repeated too often.
>>>     
>>
>> What do we do about the on_each_cpu(hardware_enable) cases? We couldn't
>> tell when to activate/deactive virtualization then, as that's
>> semantically bound to "amount of VMs".
>>   
>
> I don't understand.  Moving the test to within the IPI shouldn't
> affect anything.
>

Actually it's there already. Since we have the cpu_isset if here, we
won't get disabling when it's disabled or enabling when it's enabled on
a per-cpu basis. That code would've just saved us the IPIs :-).

So I'll add  hardware_{en,dis}able_all functions that do the locking and
increase / decrease the counter. Disable is used twice, while enable
only once. But for the sake of code readability, I think it might be a
good idea to have both of them be functions.

Also the locking isn't really needed in most cases (CPU hotplug,
suspend, resume, reboot, exit), since we don't schedule there.

Alex
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to