| Summary: | [ALL regression]igt/kms_cursor_crc cursor position range checking broken | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | DRI | Reporter: | Guo Jinxian <jinxianx.guo> | ||||||
| Component: | DRM/Intel | Assignee: | Matt Roper <matthew.d.roper> | ||||||
| Status: | CLOSED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> | ||||||
| Severity: | normal | ||||||||
| Priority: | high | CC: | hengx.ding, huax.lu, intel-gfx-bugs | ||||||
| Version: | unspecified | ||||||||
| Hardware: | Other | ||||||||
| OS: | All | ||||||||
| Whiteboard: | |||||||||
| i915 platform: | i915 features: | ||||||||
| Attachments: |
|
||||||||
Test on BYT with latest -nightly kernel, it sporadically fails. output: root@x-bytm02:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_cursor_crc --run-subtest cursor-256x256-onscreen IGT-Version: 1.8-ge622850 (x86_64) (Linux: 3.18.0-rc3_drm-intel-nightly_f56717_20141105+ x86_64) Beginning cursor-256x256-onscreen on pipe A, connector eDP-1 ............................ cursor-256x256-onscreen on pipe A, connector eDP-1: PASSED Beginning cursor-256x256-onscreen on pipe B, connector eDP-1 ............................ cursor-256x256-onscreen on pipe B, connector eDP-1: PASSED Subtest cursor-256x256-onscreen: SUCCESS (115.736s) root@x-bytm02:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_cursor_crc --run-subtest cursor-256x256-onscreen IGT-Version: 1.8-ge622850 (x86_64) (Linux: 3.18.0-rc3_drm-intel-nightly_f56717_20141105+ x86_64) Beginning cursor-256x256-onscreen on pipe A, connector eDP-1 ..Test assertion failure function do_single_test, file kms_cursor_crc.c:131: Failed assertion: igt_crc_equal(&crc, &ref_crc) Subtest cursor-256x256-onscreen: FAIL (5.051s) root@x-bytm02:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_cursor_crc --run-subtest cursor-256x256-onscreen IGT-Version: 1.8-ge622850 (x86_64) (Linux: 3.18.0-rc3_drm-intel-nightly_f56717_20141105+ x86_64) Beginning cursor-256x256-onscreen on pipe A, connector eDP-1 ..Test assertion failure function do_single_test, file kms_cursor_crc.c:131: Failed assertion: igt_crc_equal(&crc, &ref_crc) Subtest cursor-256x256-onscreen: FAIL (5.058s) Please retest with latest igt, specifically commit 57259d714d3fe1170cf931af72648219856a9918 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Mon Nov 24 16:08:32 2014 +0100 lib/igt_debugfs: Don't setup crc in _new Created attachment 111147 [details]
dmesg
Test on latest -nightly kernel and igt.
It still sporadically fails, Fail rate 1/4.
output:
IGT-Version: 1.9-gc537cdb (x86_64) (Linux: 3.18.0_drm-intel-nightly_4fa231_20141222+ x86_64)
Beginning cursor-128x128-random on pipe A, connector eDP-1
................Test assertion failure function do_single_test, file kms_cursor_crc.c:139:
Failed assertion: igt_crc_equal(&crc, &ref_crc)
Subtest cursor-128x128-random: FAIL (3.343s)
Looks like it still happens:
[root@jbarnes-byt tests]$ ./kms_cursor_crc --run-subtest cursor-128x128-offscreen
IGT-Version: 1.10-g590e47c (x86_64) (Linux: 4.0.0-rc6+ x86_64)
Beginning cursor-128x128-offscreen on pipe A, connector HDMI-A-1
.........................................................Test assertion failure function do_fail_test, file kms_cursor_crc.c:188:
Failed assertion: ret == expect
error: 0 != -34
Stack trace:
#0 [__igt_fail_assert+0xfc]
#1 [test_crc_offscreen+0x355]
#2 [run_test.constprop.3+0x212]
#3 [run_test_generic.constprop.1+0x5f2]
#4 [__real_main556+0x133]
#5 [main+0x21]
#6 [__libc_start_main+0xf5]
#7 [_start+0x29]
#8 [<unknown>+0x29]
Subtest cursor-128x128-offscreen failed.
**** DEBUG ****
HDMI-A-1: SetCursor pipe A, fb 1 128x128
display: HDMI-A-1: MoveCursor pipe A, (2147483519, 2147483519)
display: }
display: A.3: plane_set_fb(0)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, disabling
display: }
display: commit {
display: HDMI-A-1: Selecting pipe A
display: }
display: A.3: plane_set_fb(64)
display: A.3: plane_set_size(128,128)
display: A.3: plane_set_position(-2147483648,2147483519)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, fb 1 128x128
display: HDMI-A-1: MoveCursor pipe A, (-2147483648, 2147483519)
display: }
display: A.3: plane_set_fb(0)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, disabling
display: }
display: commit {
display: HDMI-A-1: Selecting pipe A
display: }
display: A.3: plane_set_fb(64)
display: A.3: plane_set_size(128,128)
display: A.3: plane_set_position(-32768,-32768)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, fb 1 128x128
display: HDMI-A-1: MoveCursor pipe A, (-32768, -32768)
display: }
display: A.3: plane_set_fb(0)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, disabling
display: }
display: commit {
display: HDMI-A-1: Selecting pipe A
display: }
display: A.3: plane_set_fb(64)
display: A.3: plane_set_size(128,128)
display: A.3: plane_set_position(32767,-32768)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, fb 1 128x128
display: HDMI-A-1: MoveCursor pipe A, (32767, -32768)
display: }
display: A.3: plane_set_fb(0)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, disabling
display: }
display: commit {
display: HDMI-A-1: Selecting pipe A
display: }
display: A.3: plane_set_fb(64)
display: A.3: plane_set_size(128,128)
display: A.3: plane_set_position(32767,32767)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, fb 1 128x128
display: HDMI-A-1: MoveCursor pipe A, (32767, 32767)
display: }
display: A.3: plane_set_fb(0)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, disabling
display: }
display: commit {
display: HDMI-A-1: Selecting pipe A
display: }
display: A.3: plane_set_fb(64)
display: A.3: plane_set_size(128,128)
display: A.3: plane_set_position(-32768,32767)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, fb 1 128x128
display: HDMI-A-1: MoveCursor pipe A, (-32768, 32767)
display: }
display: A.3: plane_set_fb(0)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, disabling
display: }
display: commit {
display: HDMI-A-1: Selecting pipe A
display: }
display: A.3: plane_set_fb(64)
display: A.3: plane_set_size(128,128)
display: A.3: plane_set_position(2147483520,2147483520)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, fb 1 128x128
display: HDMI-A-1: MoveCursor pipe A, (2147483520, 2147483520)
display: }
display: A.3: plane_set_position(0,0)
display: A.3: plane_set_fb(0)
display: commit {
display: HDMI-A-1: Selecting pipe A
display: HDMI-A-1: SetCursor pipe A, disabling
display: HDMI-A-1: MoveCursor pipe A, (0, 0)
display: }
Test assertion failure function do_fail_test, file kms_cursor_crc.c:188:
Failed assertion: ret == expect
error: 0 != -34
**** END ****
Subtest cursor-128x128-offscreen: FAIL (38.532s)
It appears the universal plane code doesn't check for bounds in the same way as the old cursor code. Matt, is this still valid?
*** Bug 89528 has been marked as a duplicate of this bug. *** *** Bug 89630 has been marked as a duplicate of this bug. *** (In reply to Jesse Barnes from comment #4) ... > It appears the universal plane code doesn't check for bounds in the same way > as the old cursor code. Matt, is this still valid? I think this patch should fix it: http://patchwork.freedesktop.org/patch/46469/ Please re-open if the problem still exists. (In reply to Matt Roper from comment #7) > (In reply to Jesse Barnes from comment #4) > ... > > It appears the universal plane code doesn't check for bounds in the same way > > as the old cursor code. Matt, is this still valid? > > I think this patch should fix it: > http://patchwork.freedesktop.org/patch/46469/ > > Please re-open if the problem still exists. Matt, has this patch been committed? We should change the status to RESOLVED-FIXED after the patch landed. (In reply to Gordon Jin from comment #8) > (In reply to Matt Roper from comment #7) > > (In reply to Jesse Barnes from comment #4) > > ... > > > It appears the universal plane code doesn't check for bounds in the same way > > > as the old cursor code. Matt, is this still valid? > > > > I think this patch should fix it: > > http://patchwork.freedesktop.org/patch/46469/ > > > > Please re-open if the problem still exists. > > Matt, has this patch been committed? We should change the status to > RESOLVED-FIXED after the patch landed. Sorry, no; I jumped the gun on this one. I'll set it back to assigned for now until it has been merged. (In reply to Matt Roper from comment #9) > (In reply to Gordon Jin from comment #8) > > (In reply to Matt Roper from comment #7) > > > (In reply to Jesse Barnes from comment #4) > > > ... > > > > It appears the universal plane code doesn't check for bounds in the same way > > > > as the old cursor code. Matt, is this still valid? > > > > > > I think this patch should fix it: > > > http://patchwork.freedesktop.org/patch/46469/ > > > > > > Please re-open if the problem still exists. > > > > Matt, has this patch been committed? We should change the status to > > RESOLVED-FIXED after the patch landed. > > Sorry, no; I jumped the gun on this one. I'll set it back to assigned for > now until it has been merged. Okay, fix merged for real now: http://patchwork.freedesktop.org/patch/47031/ 1.igt/kms_cursor_crc/cursor-128x128-offscreen
2.igt/kms_cursor_crc/cursor-128x128-onscreen
3.igt/kms_cursor_crc/cursor-128x128-random
4.igt/kms_cursor_crc/cursor-128x128-sliding
5.igt/kms_cursor_crc/cursor-256x256-offscreen
6.igt/kms_cursor_crc/cursor-64x64-offscreen
7.igt/kms_cursor_crc/cursor-64x64-onscreen
8.igt/kms_cursor_crc/cursor-64x64-random
9.igt/kms_cursor_crc/cursor-64x64-sliding
Result:
Above 9 cases pass on both BSW and BYT.
----------------------------
1. igt/kms_cursor_crc/cursor-256x256-onscreen
2. igt/kms_cursor_crc/cursor-256x256-random
3. igt/kms_cursor_crc/cursor-256x256-sliding2.
Result:
These three tests fail on the BSW, but pass on BYT.
IGT-Version: 1.10-g992f9f6 (x86_64) (Linux: 4.0.0_drm-intel-nightly_5ea91d_20150415+ x86_64)
Beginning cursor-256x256-onscreen on pipe A, connector eDP-1
.Test assertion failure function igt_assert_crc_equal, file igt_debugfs.c:207:
Failed assertion: a->crc[i] == b->crc[i]
error: 0x3220ae != 0x506a68
Stack trace:
#0 [__igt_fail_assert+0xfc]
#1 [igt_assert_crc_equal+0x82]
#2 [do_single_test+0x138]
#3 [do_test+0x1e]
#4 [test_crc_onscreen+0x4d]
#5 [run_test.constprop.3+0x212]
#6 [run_test_generic.constprop.1+0x572]
#7 [__real_main556+0x120]
#8 [main+0x21]
#9 [__libc_start_main+0xf5]
#10 [_start+0x29]
#11 [<unknown>+0x29]
Subtest cursor-256x256-onscreen failed.
**** DEBUG ****
Test requirement passed: cursor_w <= data->cursor_max_w && cursor_h <= data->cursor_max_h
display: eDP-1: set_pipe(A)
display: A.3: plane_set_fb(0)
display: commit {
display: eDP-1: Selecting pipe A
display: eDP-1: SetCursor pipe A, disabling
display: }
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)
display: A.0: plane_set_fb(53)
display: commit {
display: eDP-1: Selecting pipe A
display: eDP-1: SetCrtc pipe A, fb 53, panning (0, 0), mode 1920x1080
display: }
display: A.3: plane_set_fb(0)
Beginning cursor-256x256-onscreen on pipe A, connector eDP-1
display: A.3: plane_set_fb(51)
display: A.3: plane_set_size(256,256)
display: A.3: plane_set_position(0,0)
display: commit {
display: eDP-1: Selecting pipe A
display: eDP-1: SetCursor pipe A, fb 1 256x256
display: eDP-1: MoveCursor pipe A, (0, 0)
display: }
display: A.3: plane_set_fb(0)
display: commit {
display: eDP-1: Selecting pipe A
display: eDP-1: SetCursor pipe A, disabling
display: }
display: commit {
display: eDP-1: Selecting pipe A
display: }
Test assertion failure function igt_assert_crc_equal, file igt_debugfs.c:207:
Failed assertion: a->crc[i] == b->crc[i]
error: 0x3220ae != 0x506a68
**** END ****
Subtest cursor-256x256-onscreen: FAIL (2.700s)
> 1. igt/kms_cursor_crc/cursor-256x256-onscreen
> 2. igt/kms_cursor_crc/cursor-256x256-random
> 3. igt/kms_cursor_crc/cursor-256x256-sliding2.
>
> Result:
> These three tests fail on the BSW, but pass on BYT.
This looks like a new bug, unrelated to the previous issues. We should probably open a new bugzilla entry for this, especially since the new problem seems to be platform-specific.
For this looks like a new bug,I open a new bugzilla entry for it . And the bugzilla entry is : Bug 90507 - [BSW] igt/kms_cursor_crc some subcases fail 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.
Created attachment 106768 [details] dmesg ==System Environment== -------------------------- Regression: No. They are new cases. Non-working platforms: BYT BSW ==kernel== -------------------------- origin/drm-intel-nightly: 1c38dbc94bc61e685c72994cc9e634d4eb8c4da1(fails) drm-intel-nightly: 2014y-09m-23d-14h-26m-24s UTC integration manifest origin/drm-intel-next-queued: 9adccc6063d1cf6ba38a5a26b87001554105be18(fails) drm/i915: add SW tracking to FBC enabling origin/drm-intel-fixes: c84db77010877da6c5da119868ed54c43d59e726(fails) drm/i915/hdmi: fix hdmi audio state readout ==Bug detailed description== ----------------------------- igt/kms_cursor_crc some subcases fail Case lise: igt/kms_cursor_crc/cursor-128x128-offscreen igt/kms_cursor_crc/cursor-128x128-onscreen igt/kms_cursor_crc/cursor-128x128-random igt/kms_cursor_crc/cursor-128x128-sliding igt/kms_cursor_crc/cursor-256x256-offscreen igt/kms_cursor_crc/cursor-256x256-onscreen igt/kms_cursor_crc/cursor-256x256-random igt/kms_cursor_crc/cursor-256x256-sliding igt/kms_cursor_crc/cursor-64x64-offscreen igt/kms_cursor_crc/cursor-64x64-onscreen igt/kms_cursor_crc/cursor-64x64-random igt/kms_cursor_crc/cursor-64x64-sliding Output: root@x-byt06:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_cursor_crc --run-subtest cursor-128x128-offscreen IGT-Version: 1.8-g4b81e9c (x86_64) (Linux: 3.17.0-rc6_drm-intel-nightly_1c38db_20140924+ x86_64) Beginning cursor-128x128-offscreen on pipe A, connector eDP-1 .Test assertion failure function do_single_test, file kms_cursor_crc.c:132: Failed assertion: igt_crc_equal(&crc, &ref_crc) Subtest cursor-128x128-offscreen: FAIL (3.260s) ==Reproduce steps== ---------------------------- 1. ./kms_cursor_crc --run-subtest cursor-128x128-offscree