On Fri, Feb 10, 2017 at 10:24:41AM +0000, Tvrtko Ursulin wrote: > >+static int igt_sg_alloc(void *ignored) > >+{ > >+ IGT_TIMEOUT(end_time); > >+ const unsigned long max_order = 20; /* approximating a 4GiB object */ > >+ struct rnd_state prng; > >+ unsigned long prime; > >+ > >+ for_each_prime_number(prime, max_order) { > >+ unsigned long size = BIT(prime); > >+ int offset; > >+ > >+ for (offset = -1; offset <= 1; offset++) { > >+ unsigned long sz = size + offset; > >+ const npages_fn_t *npages; > >+ struct pfn_table pt; > >+ int err; > >+ > >+ 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 */ > > We need to define at least some amount of testing which must pass > otherwise it is just too weak in my opinion. > > return prime < TBD ? -Esomething : 0; > > ? Following our last discussion, it does a minimum of one prime [2]. static int igt_sg_alloc(void *ignored) { IGT_TIMEOUT(end_time); 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); int offset; for (offset = -1; offset <= 1; offset++) { unsigned long sz = size + offset; const npages_fn_t *npages; struct pfn_table pt; int err; for (npages = npages_funcs; *npages; npages++) { prandom_seed_state(&prng, i915_selftest.random_seed); if (!alloc_table(&pt, sz, sz, *npages, &prng)) return alloc_error; prandom_seed_state(&prng, i915_selftest.random_seed); err = expect_pfn_sgtable(&pt, *npages, &prng, "sg_alloc_table", end_time); sg_free_table(&pt.st); if (err) return err; } } alloc_error = 0; } return 0; } Something like /* Make sure we test at least one continuation before accepting oom */ if (size > MAX_SG_PER_PAGE) /* can't remember what the define is! */ alloc_error = 0; ? -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx