On Fri, May 19, 2017 at 3:17 AM, Joel Fernandes <joe...@google.com> wrote:
> Hi Rafael,
>
> On Thu, May 18, 2017 at 6:08 PM, Rafael J. Wysocki <raf...@kernel.org> wrote:
> [..]
>>>  static struct governor_attr rate_limit_us = __ATTR_RW(rate_limit_us);
>>> +static struct governor_attr iowait_boost_enable = 
>>> __ATTR_RW(iowait_boost_enable);
>>>
>>>  static struct attribute *sugov_attributes[] = {
>>>         &rate_limit_us.attr,
>>> +       &iowait_boost_enable.attr,
>>>         NULL
>>>  };
>>>
>>> @@ -543,6 +574,9 @@ static int sugov_init(struct cpufreq_policy *policy)
>>>                         tunables->rate_limit_us *= lat;
>>>         }
>>>
>>> +       if (policy->iowait_boost_enable)
>>> +               tunables->iowait_boost_enable = policy->iowait_boost_enable;
>>
>> Well, that's just
>>
>> tunables->iowait_boost_enable = policy->iowait_boost_enable;
>>
>> so I'm not sure about the role of the if ().
>
> Yes you're right, will fix.
>
>>
>> Also, do we only need the policy field as an initial value here?
>> That's sort of confusing, because intel_pstate does iowait boosting in
>> the active mode too and then it is unconditional.
>>
>
> I didn't get your comment. Could you clarify what you meant by
> 'intel_pstate does iowait boosting in the active mode' ? Is there
> another path outside the governor where intel_pstate does iowait
> boosting,

Yes.

> or are you referring to the hardware behavior?

No.

In the active mode intel_pstate acts as a governor too and it does
iowait boosting unconditionally then.

But that's OK on a second thought, as the policy field will affect the
passive mode only anyway and setting it on init will actually cause
the behavior to be consistent.

Thanks,
Rafael

Reply via email to