Messages in this thread |  | | | Date | Mon, 09 Jul 2012 18:30:25 -0400 | | From | Rik van Riel <> | | Subject | Re: [PATCH RFC 2/2] kvm PLE handler: Choose better candidate for directed yield |
| |
On 07/09/2012 02:20 AM, Raghavendra K T wrote:
> +bool kvm_arch_vcpu_check_and_update_eligible(struct kvm_vcpu *vcpu) > +{ > + bool eligible; > + > + eligible = !vcpu->arch.plo.pause_loop_exited || > + (vcpu->arch.plo.pause_loop_exited&& > + vcpu->arch.plo.dy_eligible); > + > + if (vcpu->arch.plo.pause_loop_exited) > + vcpu->arch.plo.dy_eligible = !vcpu->arch.plo.dy_eligible; > + > + return eligible; > +}
This is a nice simple mechanism to skip CPUs that were eligible last time and had pause loop exits recently.
However, it could stand some documentation. Please add a good comment explaining how and why the algorithm works, when arch.plo.pause_loop_exited is cleared, etc...
It would be good to make this heuristic understandable to people who look at the code for the first time.
-- All rights reversed
|  |