Bug 68832

Summary: [Bisected]igt/kms_flip/flip-vs-panning-interruptible fails
Product: DRI Reporter: lu hua <huax.lu>
Component: DRM/IntelAssignee: Chris Wilson <chris>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: major    
Priority: high CC: intel-gfx-bugs
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg
none
dmesg flip-vs-absolute-wf_vblank none

Description lu hua 2013-09-02 06:22:14 UTC
Created attachment 85041 [details]
dmesg

System Environment:
--------------------------
Platform:  PNV/ILK/SNB/IVB/HSW
Kernel:    (drm-intel-nightly)4508e539b642ff40ad57f3ab7721ed2862da2eb5

Bug detailed description:
-----------------------------
It fails on PNV/ILK/SNB/IVB/HSW.It happens on drm-intel-nightly, drm-intel-next-queued, drm-intel-fixes kernel.
Following cases also fail:
igt/kms_flip/flip-vs-absolute-wf_vblank	
igt/kms_flip/flip-vs-absolute-wf_vblank-interruptible	
igt/kms_flip/flip-vs-panning	

Bisect shows: 919d68901187fa797a9b648fcf87c838fae22fa3 is the first bad commit.
commit 919d68901187fa797a9b648fcf87c838fae22fa3
Author:     Chris Wilson <chris@chris-wilson.co.uk>
AuthorDate: Thu Aug 29 15:33:53 2013 +0100
Commit:     Chris Wilson <chris@chris-wilson.co.uk>
CommitDate: Thu Aug 29 16:19:41 2013 +0100

    kms_flips: Operate on an array of crtc

    This should be no functional change as we operate on an array of
    crtc[1]. Later we shall test clone mode across a number of crtc.

    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

output:
Using monotonic timestamps
Beginning flip-vs-panning-interruptible on crtc 3, connector 7
  1280x1024 60 1280 1328 1440 1688 1024 1025 1028 1066 0x5 0x48 108000
..................................................................................................................................failed to pan (2560x1024@60Hz): No space left on device
Subtest flip-vs-panning-interruptible: FAIL
DPMS property not found on 7


Reproduce steps:
----------------------------
1. ./kms_flip --run-subtest flip-vs-panning-interruptible
Comment 1 Chris Wilson 2013-09-02 12:54:11 UTC
commit 472c9dac034479fe5c740a33022fbb19e4dbe381
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Sep 2 13:50:56 2013 +0100

    kms_flip: Fix use of fb_width for PAN subtests
    
    We need to be careful to remember that fb-width is not always the same
    as hdisplay, since for panning we allocate a larger framebuffer. So fix
    up the printfs to use hdisplay/vsisplay since that should be uniform
    across the array.
    
    Regression from
    commit 919d68901187fa797a9b648fcf87c838fae22fa3
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Thu Aug 29 15:33:53 2013 +0100
    
        kms_flips: Operate on an array of crtc
    
    Buzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68832
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 2 lu hua 2013-09-04 03:13:13 UTC
flip-vs-panning-interruptible and flip-vs-panning fixed.

igt/kms_flip/flip-vs-absolute-wf_vblank	and igt/kms_flip/flip-vs-absolute-wf_vblank-interruptible still fail.
Comment 3 Chris Wilson 2013-09-04 10:09:36 UTC
But presumably not with -ENOSPC?
Comment 4 Chris Wilson 2013-09-04 10:23:21 UTC
If you see:

> INFO: task kms_flip:14676 blocked for more than 120 seconds.
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> kms_flip        D ffff88019283a5c0     0 14676  13344 0x00000004
>  ffff88018e62dbf8 0000000000000046 ffff88013bdb12e0 ffff88018e62dfd8
>  ffff88018e62dfd8 00000000001d3b00 ffff88019283a5c0 ffff88018ec21000
>  ffff88018f693f00 ffff88018eece000 ffff88018e62dd60 ffff88018eece898
> Call Trace:
>  [<ffffffff8138ee7b>] schedule+0x60/0x62
>  [<ffffffffa046c0dd>] intel_crtc_wait_for_pending_flips+0xb2/0x114 [i915]
>  [<ffffffff81050ff4>] ? finish_wait+0x60/0x60
>  [<ffffffffa0478041>] intel_crtc_set_config+0x7f3/0x81e [i915]
>  [<ffffffffa031780a>] drm_mode_set_config_internal+0x4f/0xc6 [drm]
>  [<ffffffffa0319cf3>] drm_mode_setcrtc+0x44d/0x4f9 [drm]
>  [<ffffffff810e44da>] ? might_fault+0x38/0x86
>  [<ffffffffa030d51f>] drm_ioctl+0x2f9/0x447 [drm]
>  [<ffffffff8107a722>] ? trace_hardirqs_off+0xd/0xf
>  [<ffffffffa03198a6>] ? drm_mode_setplane+0x343/0x343 [drm]
>  [<ffffffff8112222f>] ? mntput_no_expire+0x3e/0x13d
>  [<ffffffff81117f33>] vfs_ioctl+0x18/0x34
>  [<ffffffff81118776>] do_vfs_ioctl+0x396/0x454
>  [<ffffffff81396b37>] ? sysret_check+0x1b/0x56
>  [<ffffffff81118886>] SyS_ioctl+0x52/0x7d
>  [<ffffffff81396b12>] system_call_fastpath+0x16/0x1b
> 2 locks held by kms_flip/14676:
>  #0:  (&dev->mode_config.mutex){+.+.+.}, at: [<ffffffffa0316545>] drm_modeset_lock_all+0x22/0x59 [drm]
>  #1:  (&crtc->mutex){+.+.+.}, at: [<ffffffffa031656b>] drm_modeset_lock_all+0x48/0x59 [drm]
> INFO: task kworker/u8:4:175 blocked for more than 120 seconds.
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> kworker/u8:4    D ffff88018de9a5c0     0   175      2 0x00000000
> Workqueue: i915 i915_error_work_func [i915]
>  ffff88018e37dc30 0000000000000046 ffff8801938ab8a0 ffff88018e37dfd8
>  ffff88018e37dfd8 00000000001d3b00 ffff88018de9a5c0 ffff88018ec21018
>  0000000000000246 ffff88018e37dca0 000000005a865a86 ffff88018de9a5c0
> Call Trace:
>  [<ffffffff8138ee7b>] schedule+0x60/0x62
>  [<ffffffff8138f23d>] schedule_preempt_disabled+0x9/0xb
>  [<ffffffff8138d0cd>] mutex_lock_nested+0x205/0x3b1
>  [<ffffffffa0477094>] ? intel_display_handle_reset+0x7e/0xbd [i915]
>  [<ffffffffa0477094>] ? intel_display_handle_reset+0x7e/0xbd [i915]
>  [<ffffffffa0477094>] intel_display_handle_reset+0x7e/0xbd [i915]
>  [<ffffffffa044e0a2>] i915_error_work_func+0x128/0x147 [i915]
>  [<ffffffff8104a89a>] process_one_work+0x1d4/0x35a
>  [<ffffffff8104a821>] ? process_one_work+0x15b/0x35a
>  [<ffffffff8104b4a5>] worker_thread+0x144/0x1f0
>  [<ffffffff8104b361>] ? rescuer_thread+0x275/0x275
>  [<ffffffff8105076d>] kthread+0xac/0xb4
>  [<ffffffff81059d30>] ? finish_task_switch+0x3b/0xc0
>  [<ffffffff810506c1>] ? __kthread_parkme+0x60/0x60
>  [<ffffffff81396a6c>] ret_from_fork+0x7c/0xb0
>  [<ffffffff810506c1>] ? __kthread_parkme+0x60/0x60
> 3 locks held by kworker/u8:4/175:
>  #0:  (i915){.+.+.+}, at: [<ffffffff8104a821>] process_one_work+0x15b/0x35a
>  #1:  ((&dev_priv->gpu_error.work)){+.+.+.}, at: [<ffffffff8104a821>] process_one_work+0x15b/0x35a
>  #2:  (&crtc->mutex){+.+.+.}, at: [<ffffffffa0477094>] intel_display_handle_reset+0x7e/0xbd [i915]
> 

file a new bug, as that is a genuine bug in the kernel as opposed to this bug in the test suite.
Comment 5 lu hua 2013-09-05 07:43:18 UTC
run ./kms_flip --run-subtest flip-vs-absolute-wf_vblank
output:
Using monotonic timestamps
Beginning flip-vs-absolute-wf_vblank on crtc 3, connector 7
  1280x1024 60 1280 1328 1440 1688 1024 1025 1028 1066 0x5 0x48 108000
...inter-flip ts jitter: 0s, 66645us
Subtest flip-vs-absolute-wf_vblank: FAIL
DPMS property not found on 7
Comment 6 lu hua 2013-09-05 07:44:13 UTC
Created attachment 85231 [details]
dmesg flip-vs-absolute-wf_vblank
Comment 7 Chris Wilson 2013-09-05 10:09:21 UTC
Yes, that is a separate (look genuine) bug that I don't want to confuse with the panning bug I made in the test.
Comment 8 lu hua 2013-09-06 03:38:56 UTC
(In reply to comment #2)
> flip-vs-panning-interruptible and flip-vs-panning fixed.
> 
> igt/kms_flip/flip-vs-absolute-wf_vblank	and
> igt/kms_flip/flip-vs-absolute-wf_vblank-interruptible still fail.

File another Bug 69012. 
Close this bug.
Comment 9 Elizabeth 2017-10-06 14:43:28 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.