Bug 97939

Summary: [BYT/SNB] gem_fence_upload subtest thread-contention fails
Product: DRI Reporter: Luis Botello <luis.botello.ortega>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED DUPLICATE QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: major    
Priority: high CC: intel-gfx-bugs, ricardo.vega
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: BYT i915 features:

Description Luis Botello 2016-09-26 18:35:24 UTC
Description
==========================================
gem_fence_upload subtest thread-contention is failing with the new versions

Good Commit
==========================================
commit bef9c1f4afe24cfff578d386bde349add65673eb
Author: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Date: Mon Sep 12 11:35:34 2016 +0300
drm-intel-nightly: 2016y-09m-12d-08h-35m-02s UTC integration manifest

Bad Commit
==========================================
commit 0e34cb5b35f0f837219495c402073141481b1b90
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Mon Sep 19 18:39:27 2016 +0300
drm-intel-nightly: 2016y-09m-19d-15h-38m-53s UTC integration manifest

IGT outpu
==========================================
IGT-Version: 1.16-g32b2021 (x86_64) (Linux: 4.8.0-rc8-nightly+ x86_64)
Contended upload rate for 1 linear threads:     183.031MiB/s
Contended upload rate for 1 tiled threads:      187.367MiB/s
Contended upload rate for 2 linear threads:     110.139MiB/s
Contended upload rate for 2 tiled threads:      110.597MiB/s
Contended upload rate for 4 linear threads:     113.170MiB/s
Contended upload rate for 4 tiled threads:      112.284MiB/s
Contended upload rate for 8 linear threads:     101.350MiB/s
Contended upload rate for 8 tiled threads:      113.155MiB/s
Contended upload rate for 16 linear threads:     77.813MiB/s
Contended upload rate for 16 tiled threads:      90.149MiB/s
Contended upload rate for 32 linear threads:     74.291MiB/s
Contended upload rate for 32 tiled threads:      60.614MiB/s
(gem_fence_upload:6234) CRITICAL: Test assertion failure function thread_contention, file gem_fence_upload.c:331:
(gem_fence_upload:6234) CRITICAL: Failed assertion: linear[1] > 0.75 * linear[0]
Stack trace:
  #0 [__igt_fail_assert+0xf1]
  #1 [__real_main391+0xa80]
  #2 [main+0x29]
  #3 [__libc_start_main+0xf0]
  #4 [_start+0x29]
  #5 [<unknown>+0x29]
Subtest thread-contention failed.
**** DEBUG ****
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: !(fd<0)
(gem_fence_upload:6234) DEBUG: Test requirement passed: num_fences > 0
(gem_fence_upload:6234) INFO: Contended upload rate for 1 linear threads:       183.031MiB/s
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) INFO: Contended upload rate for 1 tiled threads:        187.367MiB/s
(gem_fence_upload:6234) INFO: Contended upload rate for 2 linear threads:       110.139MiB/s
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) INFO: Contended upload rate for 2 tiled threads:        110.597MiB/s
(gem_fence_upload:6234) INFO: Contended upload rate for 4 linear threads:       113.170MiB/s
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) INFO: Contended upload rate for 4 tiled threads:        112.284MiB/s
(gem_fence_upload:6234) INFO: Contended upload rate for 8 linear threads:       101.350MiB/s
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) INFO: Contended upload rate for 8 tiled threads:        113.155MiB/s
(gem_fence_upload:6234) INFO: Contended upload rate for 16 linear threads:       77.813MiB/s
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) INFO: Contended upload rate for 16 tiled threads:        90.149MiB/s
(gem_fence_upload:6234) INFO: Contended upload rate for 32 linear threads:       74.291MiB/s
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) && has_known_intel_chipset(fd)
(gem_fence_upload:6234) INFO: Contended upload rate for 32 tiled threads:        60.614MiB/s
(gem_fence_upload:6234) CRITICAL: Test assertion failure function thread_contention, file gem_fence_upload.c:331:
(gem_fence_upload:6234) CRITICAL: Failed assertion: linear[1] > 0.75 * linear[0]
****  END  ****
Subtest thread-contention: FAIL (25.782s)

dmesg
===========================================
[ 4790.291571] gem_fence_upload: executing
[ 4790.291783] gem_fence_upload: starting subtest thread-contention
[ 4790.291833] [drm:i915_gem_open]
[ 4790.293423] [drm:i915_gem_open]
[ 4816.084275] gem_fence_upload: exiting, ret=99


As additional comment there is a bug https://bugs.freedesktop.org/show_bug.cgi?id=80079
which contains this test, but this issue was already passing and it is failing now.
Comment 1 Jari Tahvanainen 2016-10-05 08:53:57 UTC
Changed as Highest+Blocker due to regression w/o workaround
Comment 2 Chris Wilson 2016-10-05 09:35:31 UTC
It's not a regression. This test is intended to fail as it is something that the driver cannot handle yet. The change is that we got faster at the baseline, but since the contention point itself is unchanged the highly contended cases are still slow, and so slower relative to the new baseline.
Comment 3 Jari Tahvanainen 2016-11-08 04:16:54 UTC
Priority reduced to High+Major, since this is not real regression as Chris stated.
Comment 4 Elio 2016-11-23 22:07:46 UTC
Test cases still failing with following configuration as expected.

Platform BYT: Acer Aspire XC-603
CPU: Intel(R) Pentium(R) CPU  J2900  @ 2.41GHz (family 6, model 55, stepping 8)
Motherboard: Aspire XC-603
GPU: Intel® HD Graphics - Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)

Software
Bios: P11-B2
Linux distribution: Ubuntu 16.04 64 bits

Kernel: 4.9.0-rc4 91e164f branch drm-intel-nightly from http://cgit.freedesktop.org/drm-intel/ 
  commit 91e164fea17d3e5366048b6eae3c6eea4e14e9fe
  Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
  Date:   Mon Nov 14 16:31:06 2016 +0200
  drm-intel-nightly: 2016y-11m-14d-14h-30m-30s UTC integration manifest

libdrm-2.4.71-13 670f1e4 from git://anongit.freedesktop.org/mesa/drm
mesa: mesa-13.0.0 df1b0a5 from git://anongit.freedesktop.org/mesa/mesa
cairo 1.15.2 db8a7f1 from git://anongit.freedesktop.org/cairo
xorg-server-1.18.99.902-2 7513da4 from git://git.freedesktop.org/git/xorg/xserver
xf86-video-intel 2.99.917-731 d1d14f2 from git://git.freedesktop.org/git/xorg/driver/xf86-video-intel
libva-1.7.2-40 3a7547b from git://git.freedesktop.org/git/vaapi/libva 
vaapi-intel-driver: 1.7.2-157 55a538c from git://git.freedesktop.org/git/vaapi/intel-driver
intel-gpu-tools-1.16-132 773ac7c from http://anongit.freedesktop.org/git/xorg/app/intel-gpu-tools.git

External screen: DELL U2312HM (VGA)
Comment 5 Jari Tahvanainen 2017-03-28 10:53:45 UTC
Let's follow this as part of the "all".

*** This bug has been marked as a duplicate of bug 80079 ***

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.