Re: [PATCH 2/2] sched: Use iowait boost policy option in schedutil

From: Rafael J. Wysocki
Date: Fri May 19 2017 - 00:22:25 EST


On Fri, May 19, 2017 at 3:17 AM, Joel Fernandes <joelaf@xxxxxxxxxx> wrote:
> Hi Rafael,
>
> On Thu, May 18, 2017 at 6:08 PM, Rafael J. Wysocki <rafael@xxxxxxxxxx> 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