[Intel-gfx] [PATCH v2 03/38] drm/i915: Add some selftests for sg_table manipulation
Chris Wilson
chris at chris-wilson.co.uk
Thu Feb 2 13:38:31 UTC 2017
On Thu, Feb 02, 2017 at 12:41:42PM +0000, Tvrtko Ursulin wrote:
>
> On 01/02/2017 11:34, Chris Wilson wrote:
> >On Wed, Feb 01, 2017 at 11:17:39AM +0000, Tvrtko Ursulin wrote:
>
> >>>+
> >>>+ for (npages = npages_funcs; *npages; npages++) {
> >>>+ prandom_seed_state(&prng,
> >>>+ i915_selftest.random_seed);
> >>>+ if (!alloc_table(&pt, sz, sz, *npages, &prng))
> >>>+ return 0; /* out of memory, give up */
> >>
> >>You don't have skip status? Sounds not ideal to silently abort.
> >
> >It runs until we use all physical memory, if left to its own devices. It's
> >not a skip if we have already completed some tests. ENOMEM of the test
> >setup itself is not what I'm testing for here, the test is for the
> >iterators.
>
> But suppose you mess up the test so the starting condition asks for
> impossible amount of memory but the test claims it passed. I don't
> think that is a good behaviour.
Returing ENOMEM when the failure is intentional is not an option either.
diff --git a/drivers/gpu/drm/i915/selftests/scatterlist.c b/drivers/gpu/drm/i915/selftests/scatterlist.c
index fa5bd09c863f..5eb732231749 100644
--- a/drivers/gpu/drm/i915/selftests/scatterlist.c
+++ b/drivers/gpu/drm/i915/selftests/scatterlist.c
@@ -245,6 +245,7 @@ static int igt_sg_alloc(void *ignored)
const unsigned long max_order = 20; /* approximating a 4GiB object */
struct rnd_state prng;
unsigned long prime;
+ int alloc_error = -ENOMEM;
for_each_prime_number(prime, max_order) {
unsigned long size = BIT(prime);
@@ -260,7 +261,7 @@ static int igt_sg_alloc(void *ignored)
prandom_seed_state(&prng,
i915_selftest.random_seed);
if (!alloc_table(&pt, sz, sz, *npages, &prng))
- return 0; /* out of memory, give up */
+ return alloc_error;
prandom_seed_state(&prng,
i915_selftest.random_seed);
@@ -270,6 +271,8 @@ static int igt_sg_alloc(void *ignored)
sg_free_table(&pt.st);
if (err)
return err;
+
+ alloc_error = 0;
}
}
}
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list