Bug 79060 - [SNB Regression]igt/kms_flip/modeset-vs-vblank-race-interruptible fails
Summary: [SNB Regression]igt/kms_flip/modeset-vs-vblank-race-interruptible fails
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: Other All
: highest normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-05-22 07:29 UTC by Guo Jinxian
Modified: 2017-02-10 08:47 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg (125.37 KB, text/plain)
2014-05-22 07:29 UTC, Guo Jinxian
no flags Details

Description Guo Jinxian 2014-05-22 07:29:48 UTC
Created attachment 99561 [details]
dmesg

==System Environment==
--------------------------
Regression: Yes. 
Good commit on -fixes (7f1950fbb989e8fc5463b307e062b4529d51c862)

Non-working platforms: SNB

==kernel==
--------------------------
-nightly: f5b0cca269ca3f7062f8d3441cebe6a16ce12be4(works)
-queued: e6a7e5d0fd778bc6cf295414b9937723091c9bb6(works)
    Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Date:   Wed May 21 17:29:31 2014 -0300

    drm/i915: grab the audio power domain when enabling audio on HSW+

    With the current code, we unconditionally touch
    HSW_AUD_PIN_ELD_CP_VLD, which means we can touch it when the power
    well is off, and that will trigger an "Unclaimed register" message.

    Just adding the intel_crtc->config.has_audio should already avoid the
    unclaimed register messsages, but since we actually need the power
    well to make the Audio code work, it makes sense to also grab the
    audio power domain reference, and release it when it's not needed
    anymore.

    I used IGT's pm_rpm to reproduce this bug, but it can probably be
    reproduced on other tests that do modesets. I'm using a machine with
    eDP+HDMI connected.

    Regression introduced by:

    commit acfa75b02e72bad7c93564ac379712e29c001432
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Thu Apr 24 23:54:51 2014 +0200
        drm/i915: Simplify audio handling on DDI ports

    Credits to Daniel for suggesting this implementation.

    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    
-fixes: f93e94efebbe0b9ad5048076f171ea2b054ca4fb(fails)
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Wed May 21 12:42:56 2014 +0100

    drm/i915: Fix dynamic allocation of physical handles

    A single object may be referenced by multiple registers fundamentally
    breaking the static allotment of ids in the current design. When the
    object is used the second time, the physical address of the first
    assignment is relinquished and a second one granted. However, the
    hardware is still reading (and possibly writing) to the old physical
    address now returned to the system. Eventually hilarity will ensue, but
    in the short term, it just means that cursors are broken when using more
    than one pipe.

    v2: Fix up leak of pci handle when handling an error during attachment,
    and avoid a double kmap/kunmap. (Ville)
    Rebase against -fixes.

    v3: And fix the error handling added in v2 (Ville)

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77351
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>


==Bug detailed description==
-----------------------------
igt/kms_flip/modeset-vs-vblank-race-interruptible fails

Output:
./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
IGT-Version: 1.6-gc75dcbd (x86_64) (Linux: 3.15.0-rc5_drm-intel-fixes_f93e94_20140522+ x86_64)
Using monotonic timestamps
Beginning modeset-vs-vblank-race-interruptible on crtc 5, connector 21
  1920x1200 60 1920 1968 2000 2080 1200 1203 1209 1235 0x9 0x40 154000
...........
modeset-vs-vblank-race-interruptible on crtc 5, connector 21: PASSED

Beginning modeset-vs-vblank-race-interruptible on crtc 8, connector 21
  1920x1200 60 1920 1968 2000 2080 1200 1203 1209 1235 0x9 0x40 154000
Test assertion failure function run_test_step, file kms_flip.c:883:
Last errno: 22, Invalid argument
Failed assertion: __wait_for_vblank(TEST_VBLANK_BLOCK, o->pipe, 1, 0, &reply) == 0
Subtest modeset-vs-vblank-race-interruptible: FAIL


==Reproduce steps==
---------------------------- 
1. ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
Comment 1 Daniel Vetter 2014-05-22 07:40:44 UTC
Before you bisect, can you please retest on latest -nightly? I've just merged Ville's fixes for this.
Comment 2 Guo Jinxian 2014-05-23 05:17:18 UTC
(In reply to comment #1)
> Before you bisect, can you please retest on latest -nightly? I've just
> merged Ville's fixes for this.

It was passed on latest -nightly(f5b0cca269ca3f7062f8d3441cebe6a16ce12be4), Maybe Ville's patch fixed it.
 ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
IGT-Version: 1.6-gc75dcbd (i686) (Linux: 3.15.0-rc5_drm-intel-nightly_f5b0cc_20140522+ i686)
Using monotonic timestamps
Beginning modeset-vs-vblank-race-interruptible on crtc 5, connector 10
  1280x1024 60 1280 1328 1440 1688 1024 1025 1028 1066 0x5 0x48 108000
...............
modeset-vs-vblank-race-interruptible on crtc 5, connector 10: PASSED

Beginning modeset-vs-vblank-race-interruptible on crtc 8, connector 10
  1280x1024 60 1280 1328 1440 1688 1024 1025 1028 1066 0x5 0x48 108000
...............
modeset-vs-vblank-race-interruptible on crtc 8, connector 10: PASSED

Subtest modeset-vs-vblank-race-interruptible: SUCCESS

Need I bisect it?
Comment 3 Guo Jinxian 2014-07-02 06:00:44 UTC
The test was passed on latest -nightly(a7665faa31dbbbae25e376508a9b3781e25d09e2)
Output:
[root@x-sgb4 tests]# ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
IGT-Version: 1.7-g67e29a3 (i686) (Linux: 3.16.0-rc2_drm-intel-nightly_a7665f_20140701+ i686)
Using monotonic timestamps
Beginning modeset-vs-vblank-race-interruptible on crtc 6, connector 12
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
Beginning modeset-vs-vblank-race-interruptible on crtc 10, connector 12
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
Subtest modeset-vs-vblank-race-interruptible: SUCCESS
Comment 4 Imre Deak 2014-09-17 16:22:25 UTC
Closing this based on comment 1 and 2.
Comment 5 Guo Jinxian 2014-09-30 06:20:37 UTC
Verified on latest -nightly(4cf4ff0da2b98be40da6d9fdbc3c338888ba0eb0)

[root@x-sgb4 tests]# ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
IGT-Version: 1.8-g32a0308 (i686) (Linux: 3.17.0-rc7_drm-intel-nightly_4cf4ff_20140930+ i686)
Using monotonic timestamps
Beginning modeset-vs-vblank-race-interruptible on crtc 8, connector 14
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.............................................................................................
modeset-vs-vblank-race-interruptible on crtc 8, connector 14: PASSED

Beginning modeset-vs-vblank-race-interruptible on crtc 12, connector 14
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.............................................................................................
modeset-vs-vblank-race-interruptible on crtc 12, connector 14: PASSED

Subtest modeset-vs-vblank-race-interruptible: SUCCESS (10.264s)
Comment 6 Jari Tahvanainen 2017-02-10 08:47:50 UTC
Closing (>2 years) 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.