[Intel-gfx] [PATCH i-g-t] tests/vgem_basic: Retry the initial module unload in unload test

Tahvanainen, Jari jari.tahvanainen at intel.com
Wed Oct 19 07:38:52 UTC 2016


Late Tested-By: Jari Tahvanainen <jari.tahvanainen at intel.com> 

I executed in HSW 100 times a test list having only one prime_vgem test case and vgem_basic at unload.
With fix below: 100% pass for vgem_basic at unload
Without fix below: 100% skip for vgem_basic at unload

During last night I started 100 repetitions for fast-feedback.testlist on HSW:
100% pass for vgem_basic at unload with kernel build having the fix.

Verdict: fix works as expected and seem to remove the flip-flop behavior on vgem_basic at unload.

BR, Jari

On 10/18/2016 02:36 PM, Chris Wilson wrote:
> On Tue, Oct 18, 2016 at 02:25:21PM +0300, Petri Latvala wrote:
>> If executed too soon after prime_vgem tests, the vgem unload test 
>> fails due to its execbuffers still being handled in the kernel. Retry 
>> the unload three times with sleeps before reporting a skip.
> What happened to igt ensuring that the driver was idle before closing 
> a test? I guess that is complicated by the use of multiple drivers in 
> vgem.
>
> diff --git a/lib/drmtest.c b/lib/drmtest.c index 40bbff6..5d3aaa8 
> 100644
> --- a/lib/drmtest.c
> +++ b/lib/drmtest.c
> @@ -344,14 +344,18 @@ int drm_open_driver(int chipset)
>          fd = __drm_open_driver(chipset);
>          igt_skip_on_f(fd<0, "No known gpu found\n");
>   
> -       if (__sync_fetch_and_add(&open_count, 1))
> -               return fd;
> -
> +       /* For i915, at least, we ensure that the driver is idle before
> +        * starting a test and we install an exit handler to wait until
> +        * idle before quitting.
> +        */
>          if (is_i915_device(fd)) {
> -               gem_quiescent_gpu(fd);
> -               igt_install_exit_handler(quiescent_gpu_at_exit);
> +               if (__sync_fetch_and_add(&open_count, 1) == 0) {
> +                       gem_quiescent_gpu(fd);
> +
> +                       at_exit_drm_fd = __drm_open_driver(chipset);
> +                       igt_install_exit_handler(quiescent_gpu_at_exit);
> +               }
>          }
> -       at_exit_drm_fd = __drm_open_driver(chipset);
>   
>          return fd;
>   }
>

Well I'll be damned, that's an obvious bugfix, regardless of its effects on vgem unload. Please push that with a descriptive commit message and
Reviewed-by: Petri Latvala <petri.latvala at intel.com>.

How should vgem work be flushed properly? With this i915 flushing is guaranteed even if vgem is opened first, then i915, but such flushing won't be done if only vgem is opened (I see only vgem_slow doing that)...

Jari will soon reply about vgem unload with this change applied.




---------------------------------------------------------------------
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.



More information about the Intel-gfx mailing list