Message ID | 1435074352-19241-1-git-send-email-derek.j.morton@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jun 23, 2015 at 04:45:52PM +0100, Derek Morton wrote: > On android platforms with 1Gb RAM gem_fence_thrash was failing > with an out of memory error. > This patch causes gem_close() to be called when a handle is > no longer required rather than relying on the cleanup when > the fd is closed. This greatly improves the memory footprint > of the test allowing it to run on 1Mb systems. Urm. We allocate the surfaces from the test.fd, and we close(test.fd) at the end of every test. We munmap all the pointers (except bo_copy has a leak of the mmaps), so we should not have been leaking any bo between tests. This should not be improving the memory footprint at all, but suggests something is wrong in your kernel. Did you track the kernel objects throughout the test runs? -Chris
diff --git a/tests/gem_fence_thrash.c b/tests/gem_fence_thrash.c index 6447e13..e2ed024 100644 --- a/tests/gem_fence_thrash.c +++ b/tests/gem_fence_thrash.c @@ -63,7 +63,7 @@ static void * bo_create (int fd, int tiling) { void *ptr; - int handle; + uint32_t handle; handle = gem_create(fd, OBJECT_SIZE); @@ -80,6 +80,7 @@ bo_create (int fd, int tiling) /* XXX: mmap_gtt pulls the bo into the GTT read domain. */ gem_sync(fd, handle); + gem_close(fd, handle); return ptr; } @@ -188,6 +189,8 @@ static int run_test(int threads_per_fence, void *f, int tiling, for (n = 0; n < num_threads; n++) pthread_join (threads[n], NULL); + + free(threads); } else { void *(*func)(void *) = f; igt_assert(func(&t) == (void *)0);
On android platforms with 1Gb RAM gem_fence_thrash was failing with an out of memory error. This patch causes gem_close() to be called when a handle is no longer required rather than relying on the cleanup when the fd is closed. This greatly improves the memory footprint of the test allowing it to run on 1Mb systems. Also fixed a leak of the 'threads' variable. v2: Simplified as per Chris Wilson's suggestion. Signed-off-by: Derek Morton <derek.j.morton@intel.com> --- tests/gem_fence_thrash.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)