[igt-dev] [PATCH i-g-t 1/7] gem_wsim: Check sleep times

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Tue Aug 14 18:27:08 UTC 2018


On 14/08/2018 16:27, Chris Wilson wrote:
> Quoting Tvrtko Ursulin (2018-08-14 16:21:08)
>>
>> On 14/08/2018 16:09, Chris Wilson wrote:
>>> Quoting Tvrtko Ursulin (2018-08-14 16:05:13)
>>>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>>>
>>>> Notice in more places if we are running behind.
>>>>
>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>>> ---
>>>>    benchmarks/gem_wsim.c | 52 ++++++++++++++++++++++++++++++++++++++-----
>>>>    1 file changed, 46 insertions(+), 6 deletions(-)
>>>>
>>>> diff --git a/benchmarks/gem_wsim.c b/benchmarks/gem_wsim.c
>>>> index 80f180829241..ead91b0f009b 100644
>>>> --- a/benchmarks/gem_wsim.c
>>>> +++ b/benchmarks/gem_wsim.c
>>>> @@ -1718,6 +1718,21 @@ static bool sync_deps(struct workload *wrk, struct w_step *w)
>>>>           return synced;
>>>>    }
>>>>    
>>>> +static unsigned int measured_usleep(unsigned int usec)
>>>> +{
>>>> +       struct timespec ts = { };
>>>> +       unsigned int slept;
>>>> +
>>>> +       slept = igt_nsec_elapsed(&ts);
>>>> +       igt_assert(slept == 0);
>>>> +       do {
>>>> +               usleep(usec - slept);
>>>> +               slept = igt_nsec_elapsed(&ts) / 1000;
>>>> +       } while (slept < usec);
>>>> +
>>>> +       return igt_nsec_elapsed(&ts);
>>>> +}
>>>> +
>>>>    static void *run_workload(void *data)
>>>>    {
>>>>           struct workload *wrk = (struct workload *)data;
>>>> @@ -1739,7 +1754,7 @@ static void *run_workload(void *data)
>>>>                count++) {
>>>>                   unsigned int cur_seqno = wrk->sync_seqno;
>>>>    
>>>> -               clock_gettime(CLOCK_MONOTONIC, &wrk->repeat_start);
>>>> +               igt_gettime(&wrk->repeat_start);
>>>
>>> Were you already linking against libigt?
>>> This code is not set up to hit an igt_assert()...
>>
>> This code meaning gem_wsim? There's a lot of asserts in it already, and
>> when they trigger traceback looks fine. What do you think is missing?
> 
> We have different values of fine ;) Looks nothing but a mess for me.
> I don't think igt itself has much value outside of being the test
> runner, we've baked too much knowledge of it being a test harness into
> the code (and in many cases work to reduce those assumptions). I'd
> rather libigtcore be distinct and not bring in the interlinked
> igt_subtest+igt_assert.

To not use it is to reimplement existing handy helpers - not ideal.

To split the test bits from useful helpers sounds like quite a task.

To wean gem_wsim off most igt_ stuff needs decision to be made on the 
former - what is core api, and what is test related.

To me problems outweigh the benefit. :( If gem_wsim was under tools, 
like intel_gpu_top, then yeah, it would be justifiable. Since it is in 
benchmarks I don't think we should bother.

Regards,

Tvrtko


More information about the igt-dev mailing list