[Intel-gfx] [PATCH] drm/i915/selftests: add basic selftests for rc6
Mika Kuoppala
mika.kuoppala at linux.intel.com
Thu Feb 6 12:15:45 UTC 2020
Andi Shyti <andi at etezian.org> writes:
> Hi Mika,
>
>> > +static bool test_rc6(struct intel_rc6 *rc6, bool enabled)
>> > +{
>> > + struct intel_uncore *uncore = rc6_to_uncore(rc6);
>> > + intel_wakeref_t wakeref;
>> > + u32 ec1, ec2;
>> > + u32 interval;
>> > +
>> > + wakeref = intel_runtime_pm_get(uncore->rpm);
>> > +
>> > + interval = intel_uncore_read(uncore, GEN6_RC_EVALUATION_INTERVAL);
>> > +
>> > + /*
>> > + * the interval is stored in steps of 1.28us
>> > + */
>> > + interval = div_u64(mul_u32_u32(interval, 128),
>> > + 100 * 1000); /* => miliseconds */
>> > +
>>
>> s/miliseconds/milliseconds.
>
> thanks!
>
>> I have a faint memory that the interval was not always 1.28us
>> but gen dependant.
>
> 1.28 is the incremental step and I haven't seen any different
> value in the docs. Have you?
I must have been mixing this with freq bins. Sorry.
And in this level as Chris said, we dont need to care.
>
>> > + pr_info("interval:%x [%dms], threshold:%x, rc6:%x, enabled?:%s\n",
>> > + intel_uncore_read(uncore, GEN6_RC_EVALUATION_INTERVAL),
>> > + interval,
>> > + intel_uncore_read(uncore, GEN6_RC6_THRESHOLD),
>> > + ec2 - ec1,
>> > + yesno(enabled));
>> > +
>> > + intel_runtime_pm_put(uncore->rpm, wakeref);
>> > +
>> > + return enabled != (ec1 >= ec2);
>>
>> Wrap?
>
> actually here I forgot a couple of things that went forgotten in
> my git repo.
>
> Anyway, do you mean with "wrap" to add parenthesis?
>
I meant that if you take samples between wrap
period.
-Mika
>> > + intel_rc6_unpark(rc6);
>> > +
>> > + /* interval < threshold */
>> > + if (!test_rc6(rc6, false)) {
>>
>> consider removing the assertion of 'activeness' in parameter
>> and just if (!rc6_active(rc6)). Or am I missing something in here?
>
> yes, you are right, it's misleading. I will make it more clear.
>
> The basic idea is:
>
> 1. disable rc6
> 2. check whether it's disabled test_rc6(rc6, false)
>
> or
>
> 1. enable rc6
> 2. check if it's enabled test_rc6(rc6, true)
>
> Chris was skeptical about the naming as well.
>
> Thanks!
>
> Andi
More information about the Intel-gfx
mailing list