[Intel-gfx] [PATCH i-g-t] gem_ppgtt: Test VMA leak on context destruction

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Wed Sep 23 05:36:17 PDT 2015


Hi,

On 09/18/2015 12:17 PM, Thomas Wood wrote:
> On 11 September 2015 at 15:31, Tvrtko Ursulin
> <tvrtko.ursulin at linux.intel.com> wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>
>> Test that VMAs associated with a context are cleaned up when
>> contexts are destroyed.
>>
>> In practice this emulates the leak seen between fbcon and X server.
>> Every time the X server exits we gain one VMA on the fbcon frame
>> buffer object as externally visible via for example
>> /sys/kernel/debug/dri/0/i915_gem_gtt.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>> ---
>>   tests/gem_ppgtt.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 80 insertions(+)
>>
>> diff --git a/tests/gem_ppgtt.c b/tests/gem_ppgtt.c
>> index 4f6df063214a..363f9d701585 100644
>> --- a/tests/gem_ppgtt.c
>> +++ b/tests/gem_ppgtt.c
>> @@ -265,6 +265,83 @@ static void flink_and_close(void)
>>          close(fd2);
>>   }
>>
>> +static int grep_name(char *match, int to_match)
>
> This could be added to igt_debugfs.c, as it might be useful for other tests.

I couldn't force myself to do it.

>
>> +{
>> +       int fdd, ret, matched;
>> +
>> +       fdd = open("/sys/kernel/debug/dri/0/i915_gem_gtt", O_RDONLY);
>
> igt_debugfs_open would be more robust here, as it checks various
> locations for the debugfs and also attempts to mount it if it can't be
> found.

Done.

>
>
>> +       igt_assert(fdd >= 0);
>> +
>> +       matched = 0;
>> +       do {
>> +               char ch;
>> +
>> +               ret = read(fdd, &ch, 1);
>> +               if (ret == 0)
>> +                       break;
>> +               igt_assert(ret == 1);
>> +
>> +               if (ch == match[matched])
>> +                       matched++;
>> +               else
>> +                       matched = 0;
>> +       } while (matched < to_match);
>
> igt_debugfs_fopen is also available, which would allow the use of
> getline and strstr here instead, as a slightly simpler implementation.

Also done. Ah not via fopen but open+fdopen... drat..

You want v3 or you can live with v2?

Regards,

Tvrtko


More information about the Intel-gfx mailing list