Bug 90369 - [IVB bisected]igt/pm_rc6_residency subcase rc6-accuracy fail
Summary: [IVB bisected]igt/pm_rc6_residency subcase rc6-accuracy fail
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-08 08:33 UTC by ye.tian
Modified: 2017-10-06 14:30 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg info (119.32 KB, text/plain)
2015-05-08 08:33 UTC, ye.tian
no flags Details

Description ye.tian 2015-05-08 08:33:43 UTC
Created attachment 115630 [details]
dmesg info

==System Environment==       
-----------------------------------------------------
Regression: Yes
Non-working platforms: IVB

==Kernel==
--------------------------------------------------
commit 20e7fca46c6d1598a9720f3b0b06acb982919cf8
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Thu May 7 18:16:42 2015 +0200

    drm-intel-nightly: 2015y-05m-07d-16h-16m-10s UTC integration manifest

==Bug detailed description==
--------------------------------------------------
igt/pm_rc6_residency subcase rc6-accuracy fail on IVB.
It’s kernel regression, By bisected, show the first bad commit is 71b7e54
commit 71b7e54f71b899db9f8def67a0e976969384e699
Author:     Daniel Vetter <daniel.vetter@ffwll.ch>
AuthorDate: Tue Apr 14 17:35:18 2015 +0200
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Thu Apr 23 21:06:02 2015 +0200

    drm/i915: Don't look at pg_dirty_rings for aliasing ppgtt
    
    We load the ppgtt ptes once per gpu reset/driver load/resume and
    that's all that's needed. Note that this only blows up when we're
    using the allocate_va_range funcs and not the special-purpose ones
    used. With this change we can get rid of that duplication.
    
    Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

==output==

[root@x-ivb6 tests]# ./pm_rc6_residency --run-subtest rc6-accuracy
IGT-Version: 1.10-g159562c (x86_64) (Linux: 4.1.0-rc2_drm-intel-nightly_20e7fc_20150508+ x86_64)
Test assertion failure function residency_accuracy, file pm_rc6_residency.c:104:
Failed assertion: diff >= (SLEEP_DURATION - RC6_FUDGE)
GPU was not in RC6 long enough. Check that the GPU is as idle as possible(ie. no X, running and running no other tests)
Stack trace:
  #0 [__igt_fail_assert+0xf1]
  #1 [residency_accuracy+0x171]
  #2 [__real_main134+0xdd]
  #3 [main+0x21]
  #4 [__libc_start_main+0xf5]
  #5 [_start+0x29]
  #6 [<unknown>+0x29]
Subtest rc6-accuracy failed.
**** DEBUG ****
Test assertion failure function residency_accuracy, file pm_rc6_residency.c:104:
Failed assertion: diff >= (SLEEP_DURATION - RC6_FUDGE)
GPU was not in RC6 long enough. Check that the GPU is as idle as possible(ie. no X, running and running no other tests)
****  END  ****
Subtest rc6-accuracy: FAIL (0.003s)

==Reproduce steps==
----------------------------
1, ./pm_rc6_residency --run-subtest rc6-accuracy
Comment 1 ye.tian 2015-05-08 08:37:55 UTC
Case list:

igt@pm_rc6_residency@rc6pp-accuracy 
igt@kms_flip@vblank-vs-dpms-suspend 
igt@kms_flip@vblank-vs-dpms-suspend-interruptible 
igt@kms_flip@vblank-vs-suspend 
igt@kms_flip@vblank-vs-suspend-interruptible
Comment 2 Imre Deak 2015-05-18 15:56:17 UTC
(In reply to ye.tian from comment #1)
> Case list:
> 
> igt@pm_rc6_residency@rc6pp-accuracy 
> igt@kms_flip@vblank-vs-dpms-suspend 
> igt@kms_flip@vblank-vs-dpms-suspend-interruptible 
> igt@kms_flip@vblank-vs-suspend 
> igt@kms_flip@vblank-vs-suspend-interruptible

The bisect result looks incorrect, I'm not sure how this test ever passed when RC6P and/or RC6PP was also enabled besides RC6.

Could you try the following 7 patches:
http://lists.freedesktop.org/archives/intel-gfx/2015-May/066860.html
Comment 3 ye.tian 2015-05-19 08:01:07 UTC
(In reply to Imre Deak from comment #2)
> (In reply to ye.tian from comment #1)
> > Case list:
> > 
> > igt@pm_rc6_residency@rc6pp-accuracy 
> > igt@kms_flip@vblank-vs-dpms-suspend 
> > igt@kms_flip@vblank-vs-dpms-suspend-interruptible 
> > igt@kms_flip@vblank-vs-suspend 
> > igt@kms_flip@vblank-vs-suspend-interruptible
> 
> The bisect result looks incorrect, I'm not sure how this test ever passed
> when RC6P and/or RC6PP was also enabled besides RC6.
> 
> Could you try the following 7 patches:
> http://lists.freedesktop.org/archives/intel-gfx/2015-May/066860.html

Test it on the latest nightly kernel and latest igt with 7 patches, only rc6-accuracy is pass.

[root@x-ivb6 tests]# ./pm_rc6_residency --run-subtest rc6-accuracy
IGT-Version: 1.10-g5253af9 (x86_64) (Linux: 4.1.0-rc3_drm-intel-nightly_056608_20150519+ x86_64)
Residency in rc6 or deeper state: 2982 ms (ratio to expected duration: 0.98)
Subtest rc6-accuracy: SUCCESS (0.000s)

[root@x-ivb6 tests]# ./pm_rc6_residency --run-subtest rc6pp-accuracy
IGT-Version: 1.10-g5253af9 (x86_64) (Linux: 4.1.0-rc3_drm-intel-nightly_056608_20150519+ x86_64)
Test requirement not met in function __real_main178, file pm_rc6_residency.c:214:
Test requirement: !(!(rc6_mask & RC6PP_ENABLED))
Subtest rc6pp-accuracy: SKIP (0.000s)

[root@x-ivb6 tests]# ./kms_flip --run-subtest vblank-vs-dpms-suspend
IGT-Version: 1.10-g5253af9 (x86_64) (Linux: 4.1.0-rc3_drm-intel-nightly_056608_20150519+ x86_64)
Using monotonic timestamps
Beginning vblank-vs-dpms-suspend on crtc 20, connector 30
  1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
.rtcwake: wakeup from "mem" using /dev/rtc0 at Tue May 19 19:16:26 2015
.rtcwake: wakeup from "mem" using /dev/rtc0 at Tue May 19 19:16:58 2015
Test assertion failure function check_state, file kms_flip.c:640:
Failed assertion: timercmp(&es->last_received_ts, &es->current_ts, <)
vblank ts before the vblank was issued!
timerdiff -1s, 994391us
Stack trace:
  #0 [__igt_fail_assert+0xf1]
  #1 [check_state+0x271]
  #2 [run_test_on_crtc_set.constprop.13+0xafc]
  #3 [run_test+0x25a]
  #4 [main+0x284]
  #5 [__libc_start_main+0xf5]
  #6 [_start+0x29]
  #7 [<unknown>+0x29]
Subtest vblank-vs-dpms-suspend failed.
**** DEBUG ****
Test requirement passed: (flags & TEST_HANG) == 0 || !is_hung(drm_fd)
Test requirement passed: modes
Beginning vblank-vs-dpms-suspend on crtc 20, connector 30
igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258 [bpp=32], tiling=0x0, size=0
igt_create_fb_with_bo_size(handle=2, pitch=7680)
igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258 [bpp=32], tiling=0x0, size=0
igt_create_fb_with_bo_size(handle=3, pitch=7680)
igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258 [bpp=32], tiling=0x100000000000001, size=0
igt_create_fb_with_bo_size(handle=4, pitch=8192)
  1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Test requirement passed: !igt_run_in_simulation()
Test requirement passed: !igt_run_in_simulation()
Test assertion failure function check_state, file kms_flip.c:640:
Failed assertion: timercmp(&es->last_received_ts, &es->current_ts, <)
vblank ts before the vblank was issued!
timerdiff -1s, 994391us
****  END  ****
Subtest vblank-vs-dpms-suspend: FAIL (2.443s)
[root@x-ivb6 tests]# ./kms_flip --run-subtest vblank-vs-dpms-suspend-interruptible
IGT-Version: 1.10-g5253af9 (x86_64) (Linux: 4.1.0-rc3_drm-intel-nightly_056608_20150519+ x86_64)
Using monotonic timestamps
Beginning vblank-vs-dpms-suspend-interruptible on crtc 20, connector 30
  1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
.rtcwake: wakeup from "mem" using /dev/rtc0 at Tue May 19 19:18:00 2015
.rtcwake: wakeup from "mem" using /dev/rtc0 at Tue May 19 19:18:32 2015
Test assertion failure function check_state, file kms_flip.c:640:
Failed assertion: timercmp(&es->last_received_ts, &es->current_ts, <)
Last errno: 4, Interrupted system call
vblank ts before the vblank was issued!
timerdiff -1s, 985709us
Stack trace:
  #0 [__igt_fail_assert+0xf1]
  #1 [check_state+0x271]
  #2 [run_test_on_crtc_set.constprop.13+0xafc]
  #3 [run_test+0x25a]
  #4 [main+0x458]
  #5 [__libc_start_main+0xf5]
  #6 [_start+0x29]
  #7 [<unknown>+0x29]
Subtest vblank-vs-dpms-suspend-interruptible failed.
**** DEBUG ****
Test requirement passed: (flags & TEST_HANG) == 0 || !is_hung(drm_fd)
Test requirement passed: modes
Beginning vblank-vs-dpms-suspend-interruptible on crtc 20, connector 30
igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258 [bpp=32], tiling=0x0, size=0
igt_create_fb_with_bo_size(handle=2, pitch=7680)
igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258 [bpp=32], tiling=0x0, size=0
igt_create_fb_with_bo_size(handle=3, pitch=7680)
igt_create_fb_with_bo_size(width=1920, height=1080, format=0x34325258 [bpp=32], tiling=0x100000000000001, size=0
igt_create_fb_with_bo_size(handle=4, pitch=8192)
  1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 0x5 0x48 148500
Test requirement passed: !igt_run_in_simulation()
Test requirement passed: !igt_run_in_simulation()
Test assertion failure function check_state, file kms_flip.c:640:
Failed assertion: timercmp(&es->last_received_ts, &es->current_ts, <)
Last errno: 4, Interrupted system call
vblank ts before the vblank was issued!
timerdiff -1s, 985709us
****  END  ****
Subtest vblank-vs-dpms-suspend-interruptible: FAIL (2.419s)
Comment 4 Ander Conselvan de Oliveira 2015-05-19 08:06:33 UTC
Please open a separate bug for the kms_flip failures.
Comment 5 Imre Deak 2015-05-19 10:10:25 UTC
(In reply to Ander Conselvan de Oliveira from comment #4)
> Please open a separate bug for the kms_flip failures.

Yes those look like a separate issue. I pushed the patches to igt to fix the original IVB pm_rc6_accuracy failure, so closing this one.
Comment 6 ye.tian 2015-05-20 01:34:09 UTC
Verified it.
File a new bug 90516 for the kms_flip failures.
Comment 7 Elizabeth 2017-10-06 14:30:04 UTC
Closing old verified.


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.