Bug 78246

Summary: [IVB/HSW ULT Bisected]igt/gem_cs_prefetch costs long time to execute
Product: DRI Reporter: Guo Jinxian <jinxianx.guo>
Component: DRM/IntelAssignee: Chris Wilson <chris>
Status: CLOSED DUPLICATE QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: high CC: intel-gfx-bugs
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg none

Description Guo Jinxian 2014-05-04 08:02:23 UTC
Created attachment 98404 [details]
dmesg

*System Environment:
--------------------------
Platform: IVB HSW ULT
kernel: 
-nightly: 08ce6614d07dd1e426109672a5e323317c8d6ec7(fails)
-queued: e5c03ca362819ba8ffbe5674340b61b9cd75de8f (fails)
-fixes: 9bbfd20abe5025adbb0ac75160bd2e41158a9e83 (works)


 *Bug detailed description:
-----------------------------
igt/gem_cs_prefetch costs long time to execute, it costs about 11 minutes to finish.


It's a regression bug
Good commit: bb8786a44c6042ec8a85370466a8bd400a079bdc
Bad commit: e5c03ca362819ba8ffbe5674340b61b9cd75de8f 
We will bisect is later

Output:
date;./gem_cs_prefetch;date
Sun May  4 16:17:43 EDT 2014
IGT-Version: 1.6-gc864279 (x86_64) (Linux: 3.14.0_drm-intel-next-queued_e5c03c_20140504+ x86_64)
gem_cs_prefetch: 100%
Test suceeded, cleanup up - this might take a while.
Sun May  4 16:27:58 EDT 2014

 *Reproduce steps:
---------------------------- 
1. ./gem_cs_prefetch
Comment 1 Daniel Vetter 2014-05-05 06:53:44 UTC
Yeah, bisect should be interesting.
Comment 2 Guo Jinxian 2014-05-06 04:56:07 UTC
9403eb1064168ea7b47c5ccd04ec17b98ca9a0de is the first bad commit
commit 9403eb1064168ea7b47c5ccd04ec17b98ca9a0de
Author:     Chris Wilson <chris@chris-wilson.co.uk>
AuthorDate: Mon Mar 17 12:21:55 2014 +0000
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Fri Apr 25 16:18:01 2014 +0200


    drm/i915: Do not call retire_requests from wait_for_rendering

    A common issue we have is that retiring requests causes recursion
    through GTT manipulation or page table manipulation which we can only
    handle at very specific points. However, to maintain internal
    consistency (enforced through our sanity checks on write_domain at
    various points in the GEM object lifecycle) we do need to retire the
    object prior to marking it with a new write_domain, and also clear the
    write_domain for the implicit flush following a batch.

    Note that this then allows the unbound objects to still be on the active
    lists, and so care must be taken when removing objects from unbound lists
    (similar to the caveats we face processing the bound lists).

    v2: Fix i915_gem_shrink_all() to handle updated object lifetime rules,
    by refactoring it to call into __i915_gem_shrink().

    v3: Missed an object-retire prior to changing cache domains in
    i915_gem_object_set_cache_leve()

    v4: Rebase

    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Brad Volkin <bradley.d.volkin@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

:040000 040000 469c92ff9c22309ca81fa43a75c249c1112b69da a036ee8486228ba2ddc646c607595011a31cdde7 M      drivers


Revert the commit, the case works well
Comment 3 Chris Wilson 2014-05-06 05:31:34 UTC

*** This bug has been marked as a duplicate of bug 78023 ***
Comment 4 Gordon Jin 2014-07-16 02:03:38 UTC
Jinxian, please verify.
Comment 5 Guo Jinxian 2014-07-16 04:52:22 UTC
Verified on latest -nightly(77820625217fa547586f00be7cae56e5c5e255bf)

[root@x-ivb9 tests]# time ./gem_cs_prefetch
IGT-Version: 1.7-g3f50598 (x86_64) (Linux: 3.16.0-rc5_drm-intel-nightly_778206_20140716+ x86_64)
gem_cs_prefetch: 100%
Test suceeded, cleanup up - this might take a while.

real    0m21.041s
user    0m1.086s
sys     0m15.625s
Comment 6 Jari Tahvanainen 2017-07-03 13:56:20 UTC
Closing verified+duplicate as duplicate of closed+fixed.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.