All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t] tests/gem_render_linear_blits: split into two subtests
@ 2015-02-17 11:40 tim.gore
  2015-02-18 10:45 ` Chris Wilson
  0 siblings, 1 reply; 5+ messages in thread
From: tim.gore @ 2015-02-17 11:40 UTC (permalink / raw)
  To: intel-gfx; +Cc: thomas.wood

From: Tim Gore <tim.gore@intel.com>

The gem_render_linear_blits test tends to get oom killed
on low memory (< 4GB) Android systems. This is because the
test tries to allocate (sysinfo.totalram * 9 / 10) in
buffer objects and the remaining 10% of memory is not
always enough for the Android system.
After a discussion with Chris Wilson I have split this
test into a "basic" and an "apperture-thrash" subtest,
in the same way as gem_linear_blits. The basic test
uses just two buffer objects and the apperture-thrash
test is skipped if there is insuffiecient memory.

Signed-off-by: Tim Gore <tim.gore@intel.com>
---
 tests/gem_render_linear_blits.c | 55 ++++++++++++++++++++++-------------------
 1 file changed, 30 insertions(+), 25 deletions(-)

diff --git a/tests/gem_render_linear_blits.c b/tests/gem_render_linear_blits.c
index 60ba831..3a548d3 100644
--- a/tests/gem_render_linear_blits.c
+++ b/tests/gem_render_linear_blits.c
@@ -80,18 +80,14 @@ check_bo(int fd, uint32_t handle, uint32_t val)
 	}
 }
 
-int main(int argc, char **argv)
+static void run_test (int fd, int count)
 {
 	drm_intel_bufmgr *bufmgr;
 	struct intel_batchbuffer *batch;
 	uint32_t *start_val;
 	drm_intel_bo **bo;
 	uint32_t start = 0;
-	int i, j, fd, count;
-
-	igt_simple_init(argc, argv);
-
-	fd = drm_open_any();
+	int i, j;
 
 	render_copy = igt_get_render_copyfunc(intel_get_drm_devid(fd));
 	igt_require(render_copy);
@@ -99,24 +95,6 @@ int main(int argc, char **argv)
 	bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
 	batch = intel_batchbuffer_alloc(bufmgr, intel_get_drm_devid(fd));
 
-	count = 0;
-	if (igt_run_in_simulation())
-		count = 2;
-	if (argc > 1)
-		count = atoi(argv[1]);
-
-	if (count == 0)
-		count = 3 * gem_aperture_size(fd) / SIZE / 2;
-	else if (count < 2) {
-		igt_warn("count must be >= 2\n");
-		return 1;
-	}
-
-	if (count > intel_get_total_ram_mb() * 9 / 10) {
-		count = intel_get_total_ram_mb() * 9 / 10;
-		igt_info("not enough RAM to run test, reducing buffer count\n");
-	}
-
 	bo = malloc(sizeof(*bo)*count);
 	start_val = malloc(sizeof(*start_val)*count);
 
@@ -153,7 +131,7 @@ int main(int argc, char **argv)
 		check_bo(fd, bo[i]->handle, start_val[i]);
 
 	if (igt_run_in_simulation())
-		return 0;
+		return;
 
 	igt_info("Cyclic blits, backward...\n");
 	for (i = 0; i < count * 4; i++) {
@@ -200,5 +178,32 @@ int main(int argc, char **argv)
 	for (i = 0; i < count; i++)
 		check_bo(fd, bo[i]->handle, start_val[i]);
 
+	intel_batchbuffer_free(batch);
+	drm_intel_bufmgr_destroy(bufmgr);
+}
+
+int main(int argc, char **argv)
+{
+	static int fd = 0;
+	int count=0;
+
+	igt_subtest_init(argc, argv);
+	igt_fixture {
+		fd = drm_open_any();
+	}
+
+	igt_subtest("basic") {
+		run_test(fd, 2);
+	}
+
+	igt_subtest("apperture-thrash") {
+		if (argc > 1)
+			count = atoi(argv[1]);
+		if (count == 0)
+			count = 3 * gem_aperture_size(fd) / SIZE / 2;
+		igt_require(count > 1);
+		intel_require_memory(count, SIZE, CHECK_RAM);
+		run_test(fd, count);
+	}
 	igt_exit();
 }
-- 
2.3.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH i-g-t] tests/gem_render_linear_blits: split into two subtests
  2015-02-17 11:40 [PATCH i-g-t] tests/gem_render_linear_blits: split into two subtests tim.gore
@ 2015-02-18 10:45 ` Chris Wilson
  2015-02-18 11:01   ` David Weinehall
  2015-02-23  9:25   ` Gore, Tim
  0 siblings, 2 replies; 5+ messages in thread
From: Chris Wilson @ 2015-02-18 10:45 UTC (permalink / raw)
  To: tim.gore; +Cc: intel-gfx, thomas.wood

On Tue, Feb 17, 2015 at 11:40:17AM +0000, tim.gore@intel.com wrote:
> From: Tim Gore <tim.gore@intel.com>
> 
> The gem_render_linear_blits test tends to get oom killed
> on low memory (< 4GB) Android systems. This is because the
> test tries to allocate (sysinfo.totalram * 9 / 10) in
> buffer objects and the remaining 10% of memory is not
> always enough for the Android system.
> After a discussion with Chris Wilson I have split this
> test into a "basic" and an "apperture-thrash" subtest,
> in the same way as gem_linear_blits. The basic test
> uses just two buffer objects and the apperture-thrash
> test is skipped if there is insuffiecient memory.
> 
> Signed-off-by: Tim Gore <tim.gore@intel.com>
> ---
>  tests/gem_render_linear_blits.c | 55 ++++++++++++++++++++++-------------------
>  1 file changed, 30 insertions(+), 25 deletions(-)
> 
> diff --git a/tests/gem_render_linear_blits.c b/tests/gem_render_linear_blits.c
> index 60ba831..3a548d3 100644
> --- a/tests/gem_render_linear_blits.c
> +++ b/tests/gem_render_linear_blits.c
> @@ -80,18 +80,14 @@ check_bo(int fd, uint32_t handle, uint32_t val)
>  	}
>  }
>  
> -int main(int argc, char **argv)
> +static void run_test (int fd, int count)
>  {
>  	drm_intel_bufmgr *bufmgr;
>  	struct intel_batchbuffer *batch;
>  	uint32_t *start_val;
>  	drm_intel_bo **bo;
>  	uint32_t start = 0;
> -	int i, j, fd, count;
> -
> -	igt_simple_init(argc, argv);
> -
> -	fd = drm_open_any();
> +	int i, j;
>  
>  	render_copy = igt_get_render_copyfunc(intel_get_drm_devid(fd));
>  	igt_require(render_copy);
> @@ -99,24 +95,6 @@ int main(int argc, char **argv)
>  	bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
>  	batch = intel_batchbuffer_alloc(bufmgr, intel_get_drm_devid(fd));
>  
> -	count = 0;
> -	if (igt_run_in_simulation())
> -		count = 2;
> -	if (argc > 1)
> -		count = atoi(argv[1]);
> -
> -	if (count == 0)
> -		count = 3 * gem_aperture_size(fd) / SIZE / 2;
> -	else if (count < 2) {
> -		igt_warn("count must be >= 2\n");
> -		return 1;
> -	}
> -
> -	if (count > intel_get_total_ram_mb() * 9 / 10) {
> -		count = intel_get_total_ram_mb() * 9 / 10;
> -		igt_info("not enough RAM to run test, reducing buffer count\n");
> -	}
> -
>  	bo = malloc(sizeof(*bo)*count);
>  	start_val = malloc(sizeof(*start_val)*count);
>  
> @@ -153,7 +131,7 @@ int main(int argc, char **argv)
>  		check_bo(fd, bo[i]->handle, start_val[i]);
>  
>  	if (igt_run_in_simulation())
> -		return 0;
> +		return;
>  
>  	igt_info("Cyclic blits, backward...\n");
>  	for (i = 0; i < count * 4; i++) {
> @@ -200,5 +178,32 @@ int main(int argc, char **argv)
>  	for (i = 0; i < count; i++)
>  		check_bo(fd, bo[i]->handle, start_val[i]);
>  
> +	intel_batchbuffer_free(batch);
> +	drm_intel_bufmgr_destroy(bufmgr);
> +}
> +
> +int main(int argc, char **argv)
> +{
> +	static int fd = 0;

static!

> +	int count=0;
> +
> +	igt_subtest_init(argc, argv);
> +	igt_fixture {
> +		fd = drm_open_any();
> +	}
> +
> +	igt_subtest("basic") {
> +		run_test(fd, 2);
> +	}
> +
> +	igt_subtest("apperture-thrash") {
> +		if (argc > 1)
> +			count = atoi(argv[1]);

With automated testing we want to perform the same test over and over
again. If it is called aperture-thrash, let's make sure we do!

If anyone ever wants to manually run this with varying amounts of
objects: first they should consider enhancing the test to capture the
scenario of concern, then secondly add the manual option.

> +		if (count == 0)
> +			count = 3 * gem_aperture_size(fd) / SIZE / 2;
> +		igt_require(count > 1);
> +		intel_require_memory(count, SIZE, CHECK_RAM);
> +		run_test(fd, count);
> +	}
>  	igt_exit();
>  }
> -- 
> 2.3.0
> 

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH i-g-t] tests/gem_render_linear_blits: split into two subtests
  2015-02-18 10:45 ` Chris Wilson
@ 2015-02-18 11:01   ` David Weinehall
  2015-02-23  9:25   ` Gore, Tim
  1 sibling, 0 replies; 5+ messages in thread
From: David Weinehall @ 2015-02-18 11:01 UTC (permalink / raw)
  To: intel-gfx

On 2015-02-18 12:45, Chris Wilson wrote:
>
> +	igt_subtest("apperture-thrash") {
> +		if (argc > 1)
> +			count = atoi(argv[1]);
>
ITYM "aperture", not "apperture".


Regards: David Weinehall
---------------------------------------------------------------------
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH i-g-t] tests/gem_render_linear_blits: split into two subtests
  2015-02-18 10:45 ` Chris Wilson
  2015-02-18 11:01   ` David Weinehall
@ 2015-02-23  9:25   ` Gore, Tim
  2015-02-23 11:46     ` Chris Wilson
  1 sibling, 1 reply; 5+ messages in thread
From: Gore, Tim @ 2015-02-23  9:25 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx, Wood, Thomas



> -----Original Message-----
> From: Chris Wilson [mailto:chris@chris-wilson.co.uk]
> Sent: Wednesday, February 18, 2015 10:46 AM
> To: Gore, Tim
> Cc: intel-gfx@lists.freedesktop.org; Wood, Thomas
> Subject: Re: [PATCH i-g-t] tests/gem_render_linear_blits: split into two
> subtests
> 
> On Tue, Feb 17, 2015 at 11:40:17AM +0000, tim.gore@intel.com wrote:
> > From: Tim Gore <tim.gore@intel.com>
> >
> > The gem_render_linear_blits test tends to get oom killed on low memory
> > (< 4GB) Android systems. This is because the test tries to allocate
> > (sysinfo.totalram * 9 / 10) in buffer objects and the remaining 10% of
> > memory is not always enough for the Android system.
> > After a discussion with Chris Wilson I have split this test into a
> > "basic" and an "apperture-thrash" subtest, in the same way as
> > gem_linear_blits. The basic test uses just two buffer objects and the
> > apperture-thrash test is skipped if there is insuffiecient memory.
> >
> > Signed-off-by: Tim Gore <tim.gore@intel.com>
> > ---
> >  tests/gem_render_linear_blits.c | 55
> > ++++++++++++++++++++++-------------------
> >  1 file changed, 30 insertions(+), 25 deletions(-)
> >
> > diff --git a/tests/gem_render_linear_blits.c
> > b/tests/gem_render_linear_blits.c index 60ba831..3a548d3 100644
> > --- a/tests/gem_render_linear_blits.c
> > +++ b/tests/gem_render_linear_blits.c
> > @@ -80,18 +80,14 @@ check_bo(int fd, uint32_t handle, uint32_t val)
> >  	}
> >  }
> >
> > -int main(int argc, char **argv)
> > +static void run_test (int fd, int count)
> >  {
> >  	drm_intel_bufmgr *bufmgr;
> >  	struct intel_batchbuffer *batch;
> >  	uint32_t *start_val;
> >  	drm_intel_bo **bo;
> >  	uint32_t start = 0;
> > -	int i, j, fd, count;
> > -
> > -	igt_simple_init(argc, argv);
> > -
> > -	fd = drm_open_any();
> > +	int i, j;
> >
> >  	render_copy = igt_get_render_copyfunc(intel_get_drm_devid(fd));
> >  	igt_require(render_copy);
> > @@ -99,24 +95,6 @@ int main(int argc, char **argv)
> >  	bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
> >  	batch = intel_batchbuffer_alloc(bufmgr, intel_get_drm_devid(fd));
> >
> > -	count = 0;
> > -	if (igt_run_in_simulation())
> > -		count = 2;
> > -	if (argc > 1)
> > -		count = atoi(argv[1]);
> > -
> > -	if (count == 0)
> > -		count = 3 * gem_aperture_size(fd) / SIZE / 2;
> > -	else if (count < 2) {
> > -		igt_warn("count must be >= 2\n");
> > -		return 1;
> > -	}
> > -
> > -	if (count > intel_get_total_ram_mb() * 9 / 10) {
> > -		count = intel_get_total_ram_mb() * 9 / 10;
> > -		igt_info("not enough RAM to run test, reducing buffer
> count\n");
> > -	}
> > -
> >  	bo = malloc(sizeof(*bo)*count);
> >  	start_val = malloc(sizeof(*start_val)*count);
> >
> > @@ -153,7 +131,7 @@ int main(int argc, char **argv)
> >  		check_bo(fd, bo[i]->handle, start_val[i]);
> >
> >  	if (igt_run_in_simulation())
> > -		return 0;
> > +		return;
> >
> >  	igt_info("Cyclic blits, backward...\n");
> >  	for (i = 0; i < count * 4; i++) {
> > @@ -200,5 +178,32 @@ int main(int argc, char **argv)
> >  	for (i = 0; i < count; i++)
> >  		check_bo(fd, bo[i]->handle, start_val[i]);
> >
> > +	intel_batchbuffer_free(batch);
> > +	drm_intel_bufmgr_destroy(bufmgr);
> > +}
> > +
> > +int main(int argc, char **argv)
> > +{
> > +	static int fd = 0;
> 
> static!
> 
> > +	int count=0;
> > +
> > +	igt_subtest_init(argc, argv);
> > +	igt_fixture {
> > +		fd = drm_open_any();
> > +	}
> > +
> > +	igt_subtest("basic") {
> > +		run_test(fd, 2);
> > +	}
> > +
> > +	igt_subtest("apperture-thrash") {
> > +		if (argc > 1)
> > +			count = atoi(argv[1]);
> 
> With automated testing we want to perform the same test over and over
> again. If it is called aperture-thrash, let's make sure we do!
> 
> If anyone ever wants to manually run this with varying amounts of
> objects: first they should consider enhancing the test to capture the scenario
> of concern, then secondly add the manual option.
> 

Hi Chris,  are you suggesting that I remove the command line option for count?

  Tim

> > +		if (count == 0)
> > +			count = 3 * gem_aperture_size(fd) / SIZE / 2;
> > +		igt_require(count > 1);
> > +		intel_require_memory(count, SIZE, CHECK_RAM);
> > +		run_test(fd, count);
> > +	}
> >  	igt_exit();
> >  }
> > --
> > 2.3.0
> >
> 
> --
> Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH i-g-t] tests/gem_render_linear_blits: split into two subtests
  2015-02-23  9:25   ` Gore, Tim
@ 2015-02-23 11:46     ` Chris Wilson
  0 siblings, 0 replies; 5+ messages in thread
From: Chris Wilson @ 2015-02-23 11:46 UTC (permalink / raw)
  To: Gore, Tim; +Cc: intel-gfx, Wood, Thomas

On Mon, Feb 23, 2015 at 09:25:22AM +0000, Gore, Tim wrote:
> > > +	igt_subtest("apperture-thrash") {
> > > +		if (argc > 1)
> > > +			count = atoi(argv[1]);
> > 
> > With automated testing we want to perform the same test over and over
> > again. If it is called aperture-thrash, let's make sure we do!
> > 
> > If anyone ever wants to manually run this with varying amounts of
> > objects: first they should consider enhancing the test to capture the scenario
> > of concern, then secondly add the manual option.
> > 
> 
> Hi Chris,  are you suggesting that I remove the command line option for count?

Yes, I don't think it makes much sense to keep it. Whilst you are here,
could you add a third subtest for "swap-thrash" (the check is
intel_require_memory(CHECK_RAM | CHECK_SWAP), and I'll let you work out
how to compute count :)
-Chris
> 

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-02-23 11:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-17 11:40 [PATCH i-g-t] tests/gem_render_linear_blits: split into two subtests tim.gore
2015-02-18 10:45 ` Chris Wilson
2015-02-18 11:01   ` David Weinehall
2015-02-23  9:25   ` Gore, Tim
2015-02-23 11:46     ` Chris Wilson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.