lkml.org 
[lkml]   [2012]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH RFC V4 3/3] kvm: Choose better candidate for directed yield
    On 07/16/2012 09:40 PM, Rik van Riel wrote:
    > On 07/16/2012 06:07 AM, Avi Kivity wrote:
    >
    >>> +{
    >>> + bool eligible;
    >>> +
    >>> + eligible = !vcpu->ple.cpu_relax_intercepted ||
    >>> + (vcpu->ple.cpu_relax_intercepted&&
    >>> + vcpu->ple.dy_eligible);
    >>> +
    >>> + if (vcpu->ple.cpu_relax_intercepted)
    >>> + vcpu->ple.dy_eligible = !vcpu->ple.dy_eligible;
    >>
    >> Probably should assign 'true', since the previous value is essentially
    >> random.
    >
    > I suspect the intended purpose of this conditional is to
    > flip the eligibility of a vcpu for being selected as a
    > direct yield target.
    >
    > In other words, that bit of the code is correct.

    Yes, That is the intention.

    The first intention was to make sure, not to select previously selected
    pause loop exited guy.
    But second intention was not to make a vcpu permanently eligible after
    skipping once.

    The problem is when several PL exits happen simultaneously, (most
    possible in large vcpu guest), it is very much probable that same vcpu
    is tried as target of directed yield slowing down yielding to a
    eligible guy.

    But I 'll test one more time to make sure that.

    (if we can make dy_eligible true as suggested, that means probably we
    can live with only one bool variable.)



    \
     
     \ /
      Last update: 2012-07-16 20:01    [W:0.028 / U:62.876 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site