Bug 98101

Summary: [BYT] [IGT] gem_tiled_blits interruptible & normal subtests [Regression]
Product: DRI Reporter: Luis Botello <luis.botello.ortega>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: intel-gfx-bugs
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: BYT i915 features: display/Other
Attachments:
Description Flags
dmesg none

Description Luis Botello 2016-10-05 21:32:34 UTC
Created attachment 127039 [details]
dmesg

Description:
====================================================
gem_tiled_blits interruptible & normal subtests causes a Failed assertion: (drm_intel_gem_bo_context_exec(batch->bo, ctx, used, ring)) == 0

Hardware information
============================================
Platform                        : BYT-M (Toshiba)
Motherboard model               : Satellite C55t-A
Motherboard type                : Portable PC Notebook
Motherboard manufacturer        : TOSHIBA
CPU family                      : Atom
CPU information                 : Intel(R) Celeron(R) CPU  N2820  @ 2.13GHz
GPU Card                        : Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0c) (prog-if 00 [VGA controller])

Software Config
==================================================
Kernel           : drm-intel-nightly WW40
	version  : 4.8.0-rc8 

commit aab15c274da587bcab19376d2caa9d6626440335
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Mon Sep 26 15:11:53 2016 +0300

    drm-intel-nightly: 2016y-09m-26d-12h-11m-33s UTC integration manifest


Kernel version : 4.8.0-rc8-aab15c2
Architecture : source amd64 all 

Component         : drm
	tag       : libdrm-2.4.70-16-g207efb1
	commit    : 207efb16ea9465c4a38840efab1bbe65e6cf5c3d 

Component         : cairo
	tag       : 1.15.2
	commit    : db8a7f1697c49ae4942d2aa49eed52dd73dd9c7a 

Component         : intel-gpu-tools
	tag       : intel-gpu-tools-1.16-41-g1a76d88
	commit    : 1a76d88905995d123ad252087228f6d310c51bdd 

Steps to reproduce:
===================================================
#./gem_tiled_blits --run-subtest interruptible

IGT output:
==================================================
IGT-Version: 1.16-g1a76d88 (x86_64) (Linux: 4.8.0-rc8-drm-intel-nightly-ww41-commit-71d1265+ x86_64)
(gem_tiled_blits:1069) drmtest-DEBUG: Test requirement passed: !(fd<0)
(gem_tiled_blits:1069) igt-core-DEBUG: Starting subtest: interruptible
(gem_tiled_blits:1069) intel-os-DEBUG: Checking 3,073 surfaces of size 1,048,576 bytes (total 3,223,851,008) against RAM
(gem_tiled_blits:1069) intel-os-DEBUG: Test requirement passed: __intel_check_memory(count, size, mode, &required, &total)
(gem_tiled_blits:1069) igt-core-DEBUG: Test requirement passed: !igt_run_in_simulation()
(gem_tiled_blits:1069) DEBUG: Using 3073 1MiB buffers
Verifying initialisation...
Cyclic blits, forward...
(gem_tiled_blits:1069) intel-batchbuffer-CRITICAL: Test assertion failure function intel_batchbuffer_flush_on_ring, file intel_batchbuffer.c:184:
(gem_tiled_blits:1069) intel-batchbuffer-CRITICAL: Failed assertion: (drm_intel_gem_bo_context_exec(batch->bo, ctx, used, ring)) == 0
(gem_tiled_blits:1069) intel-batchbuffer-CRITICAL: Last errno: 28, No space left on device
Stack trace:
  #0 [__igt_fail_assert+0x101]
  #1 [intel_batchbuffer_flush_on_ring+0xc7]
  #2 [intel_blt_copy+0x508]
  #3 [intel_copy_bo+0x44]
  #4 [run_test+0x1f7]
  #5 [main+0x1e3]
  #6 [__libc_start_main+0xf0]
  #7 [_start+0x29]
  #8 [<unknown>+0x29]
Subtest interruptible failed.
**** DEBUG ****
(gem_tiled_blits:1069) intel-os-DEBUG: Checking 3,073 surfaces of size 1,048,576 bytes (total 3,223,851,008) against RAM
(gem_tiled_blits:1069) intel-os-DEBUG: Test requirement passed: __intel_check_memory(count, size, mode, &required, &total)
(gem_tiled_blits:1069) igt-core-DEBUG: Test requirement passed: !igt_run_in_simulation()
(gem_tiled_blits:1069) DEBUG: Using 3073 1MiB buffers
(gem_tiled_blits:1069) INFO: Verifying initialisation...
(gem_tiled_blits:1069) INFO: Cyclic blits, forward...
(gem_tiled_blits:1069) intel-batchbuffer-CRITICAL: Test assertion failure function intel_batchbuffer_flush_on_ring, file intel_batchbuffer.c:184:
(gem_tiled_blits:1069) intel-batchbuffer-CRITICAL: Failed assertion: (drm_intel_gem_bo_context_exec(batch->bo, ctx, used, ring)) == 0
(gem_tiled_blits:1069) intel-batchbuffer-CRITICAL: Last errno: 28, No space left on device
****  END  ****
Subtest interruptible: FAIL (9.216s)
(gem_tiled_blits:1069) igt-core-DEBUG: Exiting with status code 99

Attachments
====================================================
dmesg
Comment 1 yann 2016-10-06 07:00:17 UTC
Please add: Good & Bad commit if this is regression
Comment 2 yann 2016-10-06 08:00:37 UTC
Luis, please retry with Chris' patch: https://patchwork.freedesktop.org/series/13367/
Comment 3 Chris Wilson 2016-10-06 08:11:17 UTC
(In reply to yann from comment #2)
> Luis, please retry with Chris' patch:
> https://patchwork.freedesktop.org/series/13367/

https://patchwork.freedesktop.org/series/13368/
Comment 4 yann 2016-10-06 08:21:54 UTC
(In reply to Chris Wilson from comment #3)
> (In reply to yann from comment #2)
> > Luis, please retry with Chris' patch:
> > https://patchwork.freedesktop.org/series/13367/
> 
> https://patchwork.freedesktop.org/series/13368/

thanks Chris, it looks like I missed to update my clipboard buffer (wrong copy'n paste)
Comment 5 Luis Botello 2016-10-06 17:29:42 UTC
Patch is working fine.
Test is passing with the following config:

commit 6a89b5700fe5959c9b6a1ef8f5464a241c681d55
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 6 08:41:37 2016 +0100


Component         : drm
	tag       : libdrm-2.4.70-16-g207efb1
	commit    : 207efb16ea9465c4a38840efab1bbe65e6cf5c3d 

Component         : cairo
	tag       : 1.15.2
	commit    : db8a7f1697c49ae4942d2aa49eed52dd73dd9c7a 

Component         : intel-gpu-tools
	tag       : intel-gpu-tools-1.16-41-g1a76d88
	commit    : 1a76d88905995d123ad252087228f6d310c51bdd
Comment 6 yann 2016-10-06 18:32:38 UTC
(In reply to Luis Botello from comment #5)
> Patch is working fine.
> Test is passing with the following config:
> 
> commit 6a89b5700fe5959c9b6a1ef8f5464a241c681d55
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Thu Oct 6 08:41:37 2016 +0100
> 
> 
> Component         : drm
> 	tag       : libdrm-2.4.70-16-g207efb1
> 	commit    : 207efb16ea9465c4a38840efab1bbe65e6cf5c3d 
> 
> Component         : cairo
> 	tag       : 1.15.2
> 	commit    : db8a7f1697c49ae4942d2aa49eed52dd73dd9c7a 
> 
> Component         : intel-gpu-tools
> 	tag       : intel-gpu-tools-1.16-41-g1a76d88
> 	commit    : 1a76d88905995d123ad252087228f6d310c51bdd

Luis, please close the bug once this is merged and re-tested vs upstream kernel
Comment 7 Chris Wilson 2016-10-07 07:28:04 UTC
commit d7f7633557503bd231347d8896b9a6fb08f84e00
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Oct 7 07:53:25 2016 +0100

    drm/i915: Force relocations via cpu if we run out of idle aperture
    
    If we run out of enough aperture space to fit the entire object, we
    fallback to trying to insert a single page. However, if that also fails,
    we currently fail to userspace with an unexpected ENOSPC. (ENOSPC means
    to userspace that their batch could not be fitted within the GTT.) Prior
    to commit e8cb909ac3ab ("drm/i915: Fallback to single page GTT
    mmappings for relocations") the approach is to fallback to using the
    slow CPU relocation path in case of iomapping failure, and that is the
    behaviour we need to restore.
    
    Fixes: e8cb909ac3ab ("drm/i915: Fallback to single page GTT mmappings...")

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.