[Intel-gfx] [PATCH i-g-t] gem_ppgtt: Test VMA leak on context destruction
Thomas Wood
thomas.wood at intel.com
Wed Sep 23 09:16:09 PDT 2015
On 23 September 2015 at 13:36, Tvrtko Ursulin
<tvrtko.ursulin at linux.intel.com> wrote:
>
> 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.
I've sent a follow up patch to move the function into the library and
use it in gem_ppgtt and gem_tiled_swapping.
>
>>
>>> +{
>>> + 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..
The follow up patch I've sent addresses this and a few other minor issues.
>
> You want v3 or you can live with v2?
Unfortunately another version will be needed, as drm_open_any has been
replaced by drm_open_driver.
>
> Regards,
>
> Tvrtko
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
More information about the Intel-gfx
mailing list