Bug 78934

Summary: [BDW]igt/kms_flip subcases rcs-flip-vs-panning and rcs-flip-vs-panning-interruptible cost long time to execute
Product: DRI Reporter: Guo Jinxian <jinxianx.guo>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: ben, intel-gfx-bugs, yi.sun
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg none

Description Guo Jinxian 2014-05-20 02:41:58 UTC
Created attachment 99371 [details]
dmesg

==System Environment==
--------------------------
Regression: No. 
This case always timeout

Non-working platforms: BDW

==kernel==
--------------------------
-nightly: f79ba79cf037eea9ee757ad37730b00f43d5ef80 (works)
-queued: d3b448d9917a3d6531e499d88bfb13ea5e31e4ad (works)
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Fri May 16 18:59:00 2014 +0100

    drm/i915: Only unpin the default ctx object if it exists

    Since commit 691e6415c891b8b2b082a120b896b443531c4d45
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Wed Apr 9 09:07:36 2014 +0100

        drm/i915: Always use kref tracking for all contexts.

    we have contexts everywhere, and so we must be careful to distinguish
    fake contexts, which do not have an associated bo, and real ones, which
    do. In particular, we now need to be careful not to dereference NULL
    pointers.

    This is one such example, as the commit highlighted above failed to move
    the unpinning of the default ctx object into the real-context-only
    branch.

    Reported-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78792
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Ben Widawsky <benjamin.widawsky@intel.com>
    Cc: Mika Kuoppala <mika.kuoppala@intel.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

-fixes: e95a2f7509f5219177d6821a0a8754f93892ca56 (fails)
    Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Date:   Thu May 8 15:09:19 2014 +0300

    drm/i915: Increase WM memory latency values on SNB

    On SNB the BIOS provided WM memory latency values seem insufficient to
    handle high resolution displays.

    In this particular case the display mode was a 2560x1440@60Hz, which
    makes the pixel clock 241.5 MHz. It was empirically found that a memory
    latency value if 1.2 usec is enough to avoid underruns, whereas the BIOS
    provided value of 0.7 usec was clearly too low. Incidentally 1.2 usec
    is what the typical BIOS provided values are on IVB systems.

    Increase the WM memory latency values to at least 1.2 usec on SNB.
    Hopefully this won't have a significant effect on power consumption.

    v2: Increase the latency values regardless of the pixel clock

    Cc: Robert N <crshman@gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70254
    Tested-by: Robert Navarro <crshman@gmail.com>
    Tested-by: Vitaly Minko <vitaly.minko@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

==Bug detailed description==
-----------------------------
igt/kms_flip subcases rcs-flip-vs-panning and rcs-flip-vs-panning-interruptible cost long time to execute

This bug only occurs on -fixes branch

Output:
time ./kms_flip --run-subtest rcs-flip-vs-panning
IGT-Version: 1.6-gd71add5 (x86_64) (Linux: 3.15.0-rc3_drm-intel-fixes_e95a2f_20140519+ x86_64)
Using monotonic timestamps
Beginning rcs-flip-vs-panning on crtc 5, connector 14
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
.
rcs-flip-vs-panning on crtc 5, connector 14: PASSED

Beginning rcs-flip-vs-panning on crtc 8, connector 14
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
.
rcs-flip-vs-panning on crtc 8, connector 14: PASSED

Beginning rcs-flip-vs-panning on crtc 11, connector 14
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
.
rcs-flip-vs-panning on crtc 11, connector 14: PASSED

Subtest rcs-flip-vs-panning: SUCCESS
real    10m25.175s
user    0m0.265s
sys     0m1.023s


==Reproduce steps==
---------------------------- 
1. ./kms_flip --run-subtest rcs-flip-vs-panning
Comment 1 Daniel Vetter 2014-05-20 09:26:19 UTC
It only flips once but doesn't hang. I'm confused. Also no gpu hangs in dmesg or anything like that ...
Comment 2 Daniel Vetter 2014-06-18 14:42:25 UTC
Please retest with latest -nightly, smells like the pageflip stall we've started to see all over. Recent kernels have mitigation and checks for this.
Comment 3 Guo Jinxian 2014-06-19 07:14:40 UTC
(In reply to comment #2)
> Please retest with latest -nightly, smells like the pageflip stall we've
> started to see all over. Recent kernels have mitigation and checks for this.

The result is failed on latest -nightly

[root@x-bdw01 tests]# time ./kms_flip --run-subtest rcs-flip-vs-panning
IGT-Version: 1.7-g1b1f4b1 (x86_64) (Linux: 3.16.0-rc1_drm-intel-nightly_00aac3_20140619+ x86_64)
Using monotonic timestamps
Beginning rcs-flip-vs-panning on crtc 6, connector 17
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
..
rcs-flip-vs-panning on crtc 6, connector 17: PASSED

Beginning rcs-flip-vs-panning on crtc 10, connector 17
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
Test assertion failure function wait_for_events, file kms_flip.c:1174:
Last errno: 0, Success
Failed assertion: ret > 0
select timed out or error (ret 0)
Subtest rcs-flip-vs-panning: FAIL

real    5m15.882s
user    0m0.204s
sys     0m0.439s


please refer to bug 79285
Comment 4 Rodrigo Vivi 2014-09-24 18:38:11 UTC
Hi Guo,

Could you please retest with latest -nightly?
Comment 5 Jani Nikula 2014-09-25 13:43:58 UTC
NEEDINFO to catch QA attention.
Comment 6 Guo Jinxian 2014-09-26 02:16:07 UTC
(In reply to comment #4)
> Hi Guo,
> 
> Could you please retest with latest -nightly?

Test passes on latest -nightly(0f7cc12c94e3a3033a46ce41bed55e8b6b35561b)


root@x-bdw05:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# time ./kms_flip --run-subtest rcs-flip-vs-panning
IGT-Version: 1.7-g5f16ef6 (x86_64) (Linux: 3.17.0-rc6_drm-intel-nightly_0f7cc1_20140925+ x86_64)
Using monotonic timestamps
Beginning rcs-flip-vs-panning on crtc 8, connector 19
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
..
rcs-flip-vs-panning on crtc 8, connector 19: PASSED

Beginning rcs-flip-vs-panning on crtc 12, connector 19
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
..
rcs-flip-vs-panning on crtc 12, connector 19: PASSED

Beginning rcs-flip-vs-panning on crtc 16, connector 19
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
..
rcs-flip-vs-panning on crtc 16, connector 19: PASSED

Subtest rcs-flip-vs-panning: SUCCESS

real    2m19.033s
user    0m0.276s
sys     0m0.754s
Comment 7 Jari Tahvanainen 2017-09-04 10:23:44 UTC
Closing old verified+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.