On Tue, Jun 23, 2015 at 04:01:53PM +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 thread is > finished with its handles 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. > > Signed-off-by: Derek Morton <derek.j.morton@xxxxxxxxx> > --- > tests/gem_fence_thrash.c | 33 ++++++++++++++++++++++----------- > 1 file changed, 22 insertions(+), 11 deletions(-) > > diff --git a/tests/gem_fence_thrash.c b/tests/gem_fence_thrash.c > index 6447e13..bfb2e6d 100644 > --- a/tests/gem_fence_thrash.c > +++ b/tests/gem_fence_thrash.c > @@ -60,26 +60,25 @@ struct test { > }; > > static void * > -bo_create (int fd, int tiling) > +bo_create (int fd, int tiling, uint32_t *handle) > { > void *ptr; > - int handle; > > - handle = gem_create(fd, OBJECT_SIZE); > + *handle = gem_create(fd, OBJECT_SIZE); > > /* dirty cpu caches a bit ... */ > - ptr = gem_mmap__cpu(fd, handle, 0, OBJECT_SIZE, PROT_READ | PROT_WRITE); > + ptr = gem_mmap__cpu(fd, *handle, 0, OBJECT_SIZE, PROT_READ | PROT_WRITE); > igt_assert(ptr); > memset(ptr, 0, OBJECT_SIZE); > munmap(ptr, OBJECT_SIZE); > > - gem_set_tiling(fd, handle, tiling, 1024); > + gem_set_tiling(fd, *handle, tiling, 1024); > > - ptr = gem_mmap(fd, handle, OBJECT_SIZE, PROT_READ | PROT_WRITE); > + ptr = gem_mmap(fd, *handle, OBJECT_SIZE, PROT_READ | PROT_WRITE); > igt_assert(ptr); > > /* XXX: mmap_gtt pulls the bo into the GTT read domain. */ > - gem_sync(fd, handle); > + gem_sync(fd, *handle); Just call gem_close(fd, handle); the mmap will hold the reference for the test. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx