[Intel-gfx] [PATCH v2 03/38] drm/i915: Add some selftests for sg_table manipulation
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Thu Feb 2 12:41:42 UTC 2017
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.
>>> +static int igt_sg_trim(void *ignored)
>>> +{
>>> + IGT_TIMEOUT(end_time);
>>> + const unsigned long max = PAGE_SIZE; /* not prime! */
>>> + struct pfn_table pt;
>>> + unsigned long prime;
>>> +
>>> + for_each_prime_number(prime, max) {
>>> + const npages_fn_t *npages;
>>> + int err;
>>> +
>>> + for (npages = npages_funcs; *npages; npages++) {
>>> + struct rnd_state prng;
>>> +
>>> + prandom_seed_state(&prng, i915_selftest.random_seed);
>>> + if (!alloc_table(&pt, prime, max, *npages, &prng))
>>> + return 0; /* out of memory, give up */
>>> +
>>> + err = 0;
>>> + if (i915_sg_trim(&pt.st)) {
>>> + if (pt.st.orig_nents != prime ||
>>> + pt.st.nents != prime) {
>>> + pr_err("i915_sg_trim failed (nents %u, orig_nents %u), expected %lu\n",
>>> + pt.st.nents, pt.st.orig_nents, prime);
>>> + err = -EINVAL;
>>> + } else {
>>> + prandom_seed_state(&prng,
>>> + i915_selftest.random_seed);
>>> + err = expect_pfn_sgtable(&pt,
>>> + *npages, &prng,
>>> + "i915_sg_trim",
>>> + end_time);
>>> + }
>>> + }
>>
>> Similar to alloc_table failures above - no log or action when
>> i915_sg_trim fails due out of memory?
>
> No, simply because that's an expected and acceptable result. The
> question should be whether we always want to check after sg_trim.
Same as above really, I think that creates a big doubt in the test output.
Regards,
Tvrtko
More information about the Intel-gfx
mailing list