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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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;
 }


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




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux