Bug 76307 - [BDW Bisected]igt/kms_fbc_crc/page_flip fails
Summary: [BDW Bisected]igt/kms_fbc_crc/page_flip fails
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: highest major
Assignee: Rodrigo Vivi
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
: 78419 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-03-18 08:24 UTC by lu hua
Modified: 2016-10-13 07:27 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg (99.00 KB, text/plain)
2014-03-18 08:24 UTC, lu hua
no flags Details

Description lu hua 2014-03-18 08:24:40 UTC
Created attachment 95989 [details]
dmesg

System Environment:
--------------------------
Platform: Broadwell
kernel: (drm-intel-nightly)b1859622badb7509586987af5269aa525a0c112f

Bug detailed description:
-------------------------
It fails on Broadwell with -nightly and -queued kernel. It doesn't skip successfully.
igt/kms_fbc_crc/page_flip_and_blt also fails.

The latest known good commit: 4c0e552882114d1edb588242d45035246ab078a0
The latest known bad commit: b2040f6fed736ccd2319768bc59833abe74148b8

output:
IGT-Version: 1.6-g10571b8 (x86_64) (Linux: 3.14.0-rc6_drm-intel-nightly_b18596_20140314+ x86_64)
Beginning page_flip on crtc 3, connector 10
Test assertion failure function test_crc, file kms_fbc_crc.c:314:
Last errno: 0, Success
Failed assertion: igt_crc_equal(&crcs[0], &data->ref_crc[1])
Subtest page_flip: FAIL

Reproduce steps:
---------------------------- 
1. ./kms_fbc_crc --run-subtest page_flip
Comment 1 Jani Nikula 2014-03-18 10:36:59 UTC
Please bisect.
Comment 2 lu hua 2014-03-19 06:40:56 UTC
Bisect shows: 4c6baa595f4e8516bb9cf0081765f90856aa2fe3 is the first bad commit
commit 4c6baa595f4e8516bb9cf0081765f90856aa2fe3
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Fri Mar 7 08:57:50 2014 -0800

    drm/i915: get_plane_config support for ILK+ v3

    This should allow BIOS fb inheritance to work on ILK+ machines too.

    v2: handle tiled BIOS fbs (Kristian)
        split out common bits (Jesse)
    v3: alloc fb obj out in _init

    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Comment 3 Jani Nikula 2014-03-19 08:36:12 UTC
(In reply to comment #2)
> Bisect shows: 4c6baa595f4e8516bb9cf0081765f90856aa2fe3 is the first bad
> commit
> commit 4c6baa595f4e8516bb9cf0081765f90856aa2fe3
> Author: Jesse Barnes <jbarnes@virtuousgeek.org>

Thanks, please always reassign to bad commit author. Done now.
Comment 4 Daniel Vetter 2014-03-27 08:50:02 UTC
Jesse?
Comment 5 Daniel Vetter 2014-03-27 08:51:03 UTC
Can you please test whether the test passes correctly with enable_fbc=0? I wonder whether there's some larger dragon looming.
Comment 6 lu hua 2014-03-28 06:11:00 UTC
(In reply to comment #5)
> Can you please test whether the test passes correctly with enable_fbc=0? I
> wonder whether there's some larger dragon looming.

It also fails.
output:
IGT-Version: 1.6-g798fca3 (x86_64) (Linux: 3.14.0-rc7_drm-intel-nightly_10c69a_20140328+ x86_64)
Beginning page_flip on crtc 3, connector 10
Test assertion failure function test_crc, file kms_fbc_crc.c:314:
Last errno: 0, Success
Failed assertion: igt_crc_equal(&crcs[0], &data->ref_crc[1])
Subtest page_flip: FAIL
Comment 7 Jesse Barnes 2014-05-28 23:18:00 UTC
Reg dumps with and without the offending patch might help here too.  Can you collect those and attach them?
Comment 8 Guo Jinxian 2014-06-03 06:18:24 UTC
This bug still able to reproduce on latest -fixes(d23db88c3ab233daed18709e3a24d6c95344117f)
./kms_fbc_crc --run-subtest page_flip_and_blt
IGT-Version: 1.6-g532b7e6 (x86_64) (Linux: 3.15.0-rc7_drm-intel-fixes_d23db8_20140602+ x86_64)
Beginning page_flip_and_blt on pipe A, connector eDP-1
Test assertion failure function test_crc, file kms_fbc_crc.c:256:
Last errno: 0, Success
Failed assertion: !igt_crc_equal(&crcs[0], &data->ref_crc[1])
Subtest page_flip_and_blt: FAIL
Comment 9 Ben Widawsky 2014-06-03 23:14:38 UTC
Guo Jinxian, you did not provide what Jesse asked for.
Comment 10 Rodrigo Vivi 2014-06-05 00:28:22 UTC
*** Bug 78419 has been marked as a duplicate of this bug. ***
Comment 11 lu hua 2014-06-05 06:12:51 UTC
(In reply to comment #9)
> Guo Jinxian, you did not provide what Jesse asked for.

Would you pls provide the patch link?
Comment 12 Ville Syrjala 2014-06-05 17:10:46 UTC
This [1] is my current wip branch for fixing fbc properly. I think it's close to being ready, I just need to split one of the patches a bit more. Give it a try if you want.

[1] git://gitorious.org/vsyrjala/linux.git fbc_update_thing_9
Comment 13 lu hua 2014-06-06 06:21:15 UTC
(In reply to comment #12)
> This [1] is my current wip branch for fixing fbc properly. I think it's
> close to being ready, I just need to split one of the patches a bit more.
> Give it a try if you want.
> 
> [1] git://gitorious.org/vsyrjala/linux.git fbc_update_thing_9

6 KiB/s is too slow. I think patch is better than new tree.
Cloning into 'fbc_update_thing_9'...
remote: Counting objects: 39968, done.
remote: Compressing objects: 100% (38055/38055), done.
Receiving objects:  71% (28525/39968), 81.43 MiB | 6 KiB/s
Comment 14 lu hua 2014-06-06 08:36:13 UTC
(In reply to comment #13)
> (In reply to comment #12)
> > This [1] is my current wip branch for fixing fbc properly. I think it's
> > close to being ready, I just need to split one of the patches a bit more.
> > Give it a try if you want.
> > 
> > [1] git://gitorious.org/vsyrjala/linux.git fbc_update_thing_9
> 
> 6 KiB/s is too slow. I think patch is better than new tree.
> Cloning into 'fbc_update_thing_9'...
> remote: Counting objects: 39968, done.
> remote: Compressing objects: 100% (38055/38055), done.
> Receiving objects:  71% (28525/39968), 81.43 MiB | 6 KiB/s

Cloning into 'fbc_update_thing_9'...
remote: Counting objects: 39968, done.
remote: Compressing objects: 100% (38055/38055), done.
Receiving objects:  78% (31533/39968), 96.18 MiB | 1 KiB/s

I hope you can provide patch.
Comment 15 Jani Nikula 2014-06-06 10:57:18 UTC
(In reply to comment #14)
> (In reply to comment #13)
> > (In reply to comment #12)
> > > This [1] is my current wip branch for fixing fbc properly. I think it's
> > > close to being ready, I just need to split one of the patches a bit more.
> > > Give it a try if you want.
> > > 
> > > [1] git://gitorious.org/vsyrjala/linux.git fbc_update_thing_9
> > 
> > 6 KiB/s is too slow. I think patch is better than new tree.
> > Cloning into 'fbc_update_thing_9'...
> > remote: Counting objects: 39968, done.
> > remote: Compressing objects: 100% (38055/38055), done.
> > Receiving objects:  71% (28525/39968), 81.43 MiB | 6 KiB/s
> 
> Cloning into 'fbc_update_thing_9'...
> remote: Counting objects: 39968, done.
> remote: Compressing objects: 100% (38055/38055), done.
> Receiving objects:  78% (31533/39968), 96.18 MiB | 1 KiB/s
> 
> I hope you can provide patch.

You probably have 99+% of the repo locally already in another kernel repo. You could do either 1) git clone --reference=/path/to/linux/.git git://gitorious.org/vsyrjala/linux.git, or 2) cd /path/to/linux; git remote add vsyrjala git://gitorious.org/vsyrjala/linux.git; git fetch vsyrjala; git checkout -t vsyrjala/fbc_update_thing_9

HTH. See man git-clone and man git-remote for further details.
Comment 16 lu hua 2014-06-09 05:30:34 UTC
Test on commit:commit 9e3a05105bb822b36a8d465731d46c44814b65a0
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Mon Jun 2 13:46:27 2014 +0300

    drm/i915: Pimp fbc render/blitter tracking

    The FBC RT address is saved as part of the context, so track it
    the same way in the driver to skip pointless LRIs. Also try
    make sure we re-emit the render/blitter tracking stuff on driver
    load and gpu reset.

    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Subtest page_flip_and_blt: FAIL
run ./kms_fbc_crc
output:
IGT-Version: 1.6-g9a70e29 (x86_64) (Linux: 3.15.0-rc7_kcloud_9e3a05_20140609+ x86_64)
Beginning page_flip on pipe A, connector eDP-1
page_flip on pipe A, connector eDP-1: PASSED
Beginning page_flip on pipe B, connector eDP-1
FBC not enabled
page_flip on pipe B, connector eDP-1: SKIPPED
Beginning page_flip on pipe C, connector eDP-1
FBC not enabled
page_flip on pipe C, connector eDP-1: SKIPPED
Subtest page_flip: SUCCESS
Beginning mmap_cpu on pipe A, connector eDP-1
mmap_cpu on pipe A, connector eDP-1: PASSED
Beginning mmap_cpu on pipe B, connector eDP-1
FBC not enabled
mmap_cpu on pipe B, connector eDP-1: SKIPPED
Beginning mmap_cpu on pipe C, connector eDP-1
FBC not enabled
mmap_cpu on pipe C, connector eDP-1: SKIPPED
Subtest mmap_cpu: SUCCESS
Beginning mmap_gtt on pipe A, connector eDP-1
mmap_gtt on pipe A, connector eDP-1: PASSED
Beginning mmap_gtt on pipe B, connector eDP-1
FBC not enabled
mmap_gtt on pipe B, connector eDP-1: SKIPPED
Beginning mmap_gtt on pipe C, connector eDP-1
FBC not enabled
mmap_gtt on pipe C, connector eDP-1: SKIPPED
Subtest mmap_gtt: SUCCESS
Beginning blt on pipe A, connector eDP-1
blt on pipe A, connector eDP-1: PASSED
Beginning blt on pipe B, connector eDP-1
FBC not enabled
blt on pipe B, connector eDP-1: SKIPPED
Beginning blt on pipe C, connector eDP-1
FBC not enabled
blt on pipe C, connector eDP-1: SKIPPED
Subtest blt: SUCCESS
Beginning render on pipe A, connector eDP-1
render on pipe A, connector eDP-1: PASSED
Beginning render on pipe B, connector eDP-1
FBC not enabled
render on pipe B, connector eDP-1: SKIPPED
Beginning render on pipe C, connector eDP-1
FBC not enabled
render on pipe C, connector eDP-1: SKIPPED
Subtest render: SUCCESS
Beginning context on pipe A, connector eDP-1
context on pipe A, connector eDP-1: PASSED
Beginning context on pipe B, connector eDP-1
FBC not enabled
context on pipe B, connector eDP-1: SKIPPED
Beginning context on pipe C, connector eDP-1
FBC not enabled
context on pipe C, connector eDP-1: SKIPPED
Subtest context: SUCCESS
Beginning page_flip_and_mmap_cpu on pipe A, connector eDP-1
page_flip_and_mmap_cpu on pipe A, connector eDP-1: PASSED
Beginning page_flip_and_mmap_cpu on pipe B, connector eDP-1
FBC not enabled
page_flip_and_mmap_cpu on pipe B, connector eDP-1: SKIPPED
Beginning page_flip_and_mmap_cpu on pipe C, connector eDP-1
FBC not enabled
page_flip_and_mmap_cpu on pipe C, connector eDP-1: SKIPPED
Subtest page_flip_and_mmap_cpu: SUCCESS
Beginning page_flip_and_mmap_gtt on pipe A, connector eDP-1
page_flip_and_mmap_gtt on pipe A, connector eDP-1: PASSED
Beginning page_flip_and_mmap_gtt on pipe B, connector eDP-1
FBC not enabled
page_flip_and_mmap_gtt on pipe B, connector eDP-1: SKIPPED
Beginning page_flip_and_mmap_gtt on pipe C, connector eDP-1
FBC not enabled
page_flip_and_mmap_gtt on pipe C, connector eDP-1: SKIPPED
Subtest page_flip_and_mmap_gtt: SUCCESS
Beginning page_flip_and_blt on pipe A, connector eDP-1
Test assertion failure function test_crc, file kms_fbc_crc.c:256:
Last errno: 0, Success
Failed assertion: !igt_crc_equal(&crcs[0], &data->ref_crc[1])
Subtest page_flip_and_blt: FAIL
Beginning page_flip_and_render on pipe A, connector eDP-1
page_flip_and_render on pipe A, connector eDP-1: PASSED
Beginning page_flip_and_render on pipe B, connector eDP-1
FBC not enabled
page_flip_and_render on pipe B, connector eDP-1: SKIPPED
Beginning page_flip_and_render on pipe C, connector eDP-1
FBC not enabled
page_flip_and_render on pipe C, connector eDP-1: SKIPPED
Subtest page_flip_and_render: SUCCESS
Beginning page_flip_and_context on pipe A, connector eDP-1
page_flip_and_context on pipe A, connector eDP-1: PASSED
Beginning page_flip_and_context on pipe B, connector eDP-1
FBC not enabled
page_flip_and_context on pipe B, connector eDP-1: SKIPPED
Beginning page_flip_and_context on pipe C, connector eDP-1
FBC not enabled
page_flip_and_context on pipe C, connector eDP-1: SKIPPED
Subtest page_flip_and_context: SUCCESS
Comment 17 Ville Syrjala 2014-06-10 13:57:33 UTC
commit 4e9df4fe5fef283c23e62fd7348fae4943a9fa6b
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Tue Jun 10 14:51:44 2014 +0300

    tests/kms_fbc_crc: Update blit code for BDW
    
    Switch to XY_COLOR_BLT from COLOR_BLT and use the appropriate
    macros to make the code work on BDW.
    
    Also make the blit 8bpp instead if 16bpp. 8bpp is what it was
    supposed to use all along.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76307
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

should hopefully fix "page_flip_and_blt". I'm a little surprised "blt" passed.
Comment 18 lu hua 2014-06-11 07:33:02 UTC
Test on latest nightly branch:
IGT-Version: 1.7-g4e9df4f (x86_64) (Linux: 3.15.0-rc8_drm-intel-nightly_814800_20140611+ x86_64)
Test requirement not met in function __real_main487, file kms_fbc_crc.c:513:
Last errno: 0, Success
Test requirement: (!(!strstr(buf, "unsupported by this chipset") && !strstr(buf, "disabled per module param") && !strstr(buf, "disabled per chip default")))
FBC not supported/enabled
Subtest page_flip: SKIP
Subtest mmap_cpu: SKIP
Subtest mmap_gtt: SKIP
Subtest blt: SKIP
Subtest render: SKIP
Subtest context: SKIP
Subtest page_flip_and_mmap_cpu: SKIP
Subtest page_flip_and_mmap_gtt: SKIP
Subtest page_flip_and_blt: SKIP
Subtest page_flip_and_render: SKIP
Subtest page_flip_and_context: SKIP

Test on fbc_update_thing_9 branch
IGT-Version: 1.7-g4e9df4f (x86_64) (Linux: 3.15.0-rc7_kcloud_9e3a05_20140609+ x86_64)
Beginning page_flip on pipe A, connector eDP-1
page_flip on pipe A, connector eDP-1: PASSED
Beginning page_flip on pipe B, connector eDP-1
FBC not enabled
page_flip on pipe B, connector eDP-1: SKIPPED
Beginning page_flip on pipe C, connector eDP-1
FBC not enabled
page_flip on pipe C, connector eDP-1: SKIPPED
Subtest page_flip: SUCCESS
Beginning mmap_cpu on pipe A, connector eDP-1
mmap_cpu on pipe A, connector eDP-1: PASSED
Beginning mmap_cpu on pipe B, connector eDP-1
FBC not enabled
mmap_cpu on pipe B, connector eDP-1: SKIPPED
Beginning mmap_cpu on pipe C, connector eDP-1
FBC not enabled
mmap_cpu on pipe C, connector eDP-1: SKIPPED
Subtest mmap_cpu: SUCCESS
Beginning mmap_gtt on pipe A, connector eDP-1
mmap_gtt on pipe A, connector eDP-1: PASSED
Beginning mmap_gtt on pipe B, connector eDP-1
FBC not enabled
mmap_gtt on pipe B, connector eDP-1: SKIPPED
Beginning mmap_gtt on pipe C, connector eDP-1
FBC not enabled
mmap_gtt on pipe C, connector eDP-1: SKIPPED
Subtest mmap_gtt: SUCCESS
Beginning blt on pipe A, connector eDP-1
blt on pipe A, connector eDP-1: PASSED
Beginning blt on pipe B, connector eDP-1
FBC not enabled
blt on pipe B, connector eDP-1: SKIPPED
Beginning blt on pipe C, connector eDP-1
FBC not enabled
blt on pipe C, connector eDP-1: SKIPPED
Subtest blt: SUCCESS
Beginning render on pipe A, connector eDP-1
render on pipe A, connector eDP-1: PASSED
Beginning render on pipe B, connector eDP-1
FBC not enabled
render on pipe B, connector eDP-1: SKIPPED
Beginning render on pipe C, connector eDP-1
FBC not enabled
render on pipe C, connector eDP-1: SKIPPED
Subtest render: SUCCESS
Beginning context on pipe A, connector eDP-1
context on pipe A, connector eDP-1: PASSED
Beginning context on pipe B, connector eDP-1
FBC not enabled
context on pipe B, connector eDP-1: SKIPPED
Beginning context on pipe C, connector eDP-1
FBC not enabled
context on pipe C, connector eDP-1: SKIPPED
Subtest context: SUCCESS
Beginning page_flip_and_mmap_cpu on pipe A, connector eDP-1
page_flip_and_mmap_cpu on pipe A, connector eDP-1: PASSED
Beginning page_flip_and_mmap_cpu on pipe B, connector eDP-1
FBC not enabled
page_flip_and_mmap_cpu on pipe B, connector eDP-1: SKIPPED
Beginning page_flip_and_mmap_cpu on pipe C, connector eDP-1
FBC not enabled
page_flip_and_mmap_cpu on pipe C, connector eDP-1: SKIPPED
Subtest page_flip_and_mmap_cpu: SUCCESS
Beginning page_flip_and_mmap_gtt on pipe A, connector eDP-1
page_flip_and_mmap_gtt on pipe A, connector eDP-1: PASSED
Beginning page_flip_and_mmap_gtt on pipe B, connector eDP-1
FBC not enabled
page_flip_and_mmap_gtt on pipe B, connector eDP-1: SKIPPED
Beginning page_flip_and_mmap_gtt on pipe C, connector eDP-1
FBC not enabled
page_flip_and_mmap_gtt on pipe C, connector eDP-1: SKIPPED
Subtest page_flip_and_mmap_gtt: SUCCESS
Beginning page_flip_and_blt on pipe A, connector eDP-1
page_flip_and_blt on pipe A, connector eDP-1: PASSED
Beginning page_flip_and_blt on pipe B, connector eDP-1
FBC not enabled
page_flip_and_blt on pipe B, connector eDP-1: SKIPPED
Beginning page_flip_and_blt on pipe C, connector eDP-1
FBC not enabled
page_flip_and_blt on pipe C, connector eDP-1: SKIPPED
Subtest page_flip_and_blt: SUCCESS
Beginning page_flip_and_render on pipe A, connector eDP-1
page_flip_and_render on pipe A, connector eDP-1: PASSED
Beginning page_flip_and_render on pipe B, connector eDP-1
FBC not enabled
page_flip_and_render on pipe B, connector eDP-1: SKIPPED
Beginning page_flip_and_render on pipe C, connector eDP-1
FBC not enabled
page_flip_and_render on pipe C, connector eDP-1: SKIPPED
Subtest page_flip_and_render: SUCCESS
Beginning page_flip_and_context on pipe A, connector eDP-1
page_flip_and_context on pipe A, connector eDP-1: PASSED
Beginning page_flip_and_context on pipe B, connector eDP-1
FBC not enabled
page_flip_and_context on pipe B, connector eDP-1: SKIPPED
Beginning page_flip_and_context on pipe C, connector eDP-1
FBC not enabled
page_flip_and_context on pipe C, connector eDP-1: SKIPPED
Subtest page_flip_and_context: SUCCESS
Comment 19 lu hua 2014-06-25 07:36:39 UTC
Verified.Fixed.
Comment 20 Jari Tahvanainen 2016-10-13 07:27:22 UTC
Closing verified+fixed. Verified on nightly.


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.