Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753955AbbFOGzL (ORCPT ); Mon, 15 Jun 2015 02:55:11 -0400 Received: from mail-wi0-f173.google.com ([209.85.212.173]:38472 "EHLO mail-wi0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752759AbbFOGzD (ORCPT ); Mon, 15 Jun 2015 02:55:03 -0400 Date: Mon, 15 Jun 2015 08:57:47 +0200 From: Daniel Vetter To: Jeremiah Mahler , linux-kernel@vger.kernel.org, Daniel Vetter , Jani Nikula , David Airlie , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: Re: [Intel-gfx] [BUG, bisect] Re: drm/i915: WARN_ON(dev_priv->mm.busy) Message-ID: <20150615065747.GD8341@phenom.ffwll.local> Mail-Followup-To: Jeremiah Mahler , linux-kernel@vger.kernel.org, Daniel Vetter , Jani Nikula , David Airlie , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org References: <20150607030934.GA8956@hudson.localdomain> <20150608055641.GA2594@hudson.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20150608055641.GA2594@hudson.localdomain> X-Operating-System: Linux phenom 4.0.0-rc3+ User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 8903 Lines: 180 Can you please retest with commit 0aedb1626566efd72b369c01992ee7413c82a0c5 Author: Ville Syrj?l? Date: Thu May 28 18:32:36 2015 +0300 drm/i915: Don't skip request retirement if the active list is empty Thanks, Daniel On Sun, Jun 07, 2015 at 10:56:41PM -0700, Jeremiah Mahler wrote: > all, > > On Sat, Jun 06, 2015 at 08:09:34PM -0700, Jeremiah Mahler wrote: > > all, > > > > On all my machines with Intel graphics I get the following warning > > in the logs when the machine is suspended. Apparently some part of > > the graphics system is busy when it should be idle. This is present > > on the latest linux-next 20150604. > > > > ... > > [ 33.141747] Suspending console(s) (use no_console_suspend to debug) > > [ 33.142146] wlan0: deauthenticating from 00:1a:70:5a:6e:0b by local > > choice (Reason: 3=DEAUTH_LEAVING) > > [ 33.147395] queueing ieee80211 work while going to suspend > > [ 33.151597] cfg80211: Calling CRDA to update world regulatory domain > > [ 33.190430] sd 0:0:0:0: [sda] Synchronizing SCSI cache > > [ 33.190523] sd 0:0:0:0: [sda] Stopping disk > > [ 33.275743] ------------[ cut here ]------------ > > [ 33.275764] WARNING: CPU: 0 PID: 1617 at > > drivers/gpu/drm/i915/i915_gem.c:4808 i915_gem_suspend+0xe4/0xf0 [i915]() > > [ 33.275766] WARN_ON(dev_priv->mm.busy) > > [ 33.275811] Modules linked in: binfmt_misc snd_hda_codec_hdmi > > hid_generic isl29018(C) industrialio regmap_i2c cyapatp crc_itu_t usbhid > > hid arc4 x86_pkg_temp_thermal intel_powerclamp intel_rapl iosf_mbi > > coretemp ath9k tpm_infineon kvm_intel kvm ath9k_common ath9k_hw > > crct10dif_pclmul crc32_pclmul crc32c_intel chromeos_laptop ath mac80211 > > ghash_clmulni_intel cryptd i915 cfg80211 pcspkr serio_raw sg ath3k btusb > > btrtl lpc_ich snd_hda_codec_realtek shpchp i2c_i801 mfd_core > > snd_hda_codec_generic btbcm btintel bluetooth snd_hda_intel battery > > snd_hda_codec ac i2c_algo_bit drm_kms_helper tpm_tis snd_hwdep tpm > > snd_hda_core drm snd_pcm video rfkill processor button snd_timer snd > > soundcore i2c_designware_pci i2c_designware_core evdev uvcvideo > > videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common videodev > > [ 33.275825] media i2c_core fuse autofs4 ext4 crc16 mbcache jbd2 > > sd_mod fan xhci_pci sdhci_acpi sdhci xhci_hcd mmc_core thermal > > thermal_sys usbcore ahci libahci usb_common libata scsi_mod > > [ 33.275828] CPU: 0 PID: 1617 Comm: kworker/u4:4 Tainted: G C > > 4.1.0-rc6-next-20150604+ #207 > > [ 33.275829] Hardware name: Acer Peppy, BIOS 04/30/2014 > > [ 33.275834] Workqueue: events_unbound async_run_entry_fn > > [ 33.275838] 0000000000000000 ffffffffa05b7908 ffffffff8152ca4d > > ffff880035effc58 > > [ 33.275840] ffffffff8106bce1 ffff880073587f20 0000000000000000 > > ffff880073580000 > > [ 33.275842] ffff88003534f860 ffff880073580000 ffffffff8106bd5a > > ffffffffa05c74c1 > > [ 33.275843] Call Trace: > > [ 33.275849] [] ? dump_stack+0x40/0x50 > > [ 33.275853] [] ? warn_slowpath_common+0x81/0xb0 > > [ 33.275855] [] ? warn_slowpath_fmt+0x4a/0x50 > > [ 33.275865] [] ? i915_gem_suspend+0xe4/0xf0 [i915] > > [ 33.275872] [] ? i915_drm_suspend+0x61/0x1b0 > > [i915] > > [ 33.275876] [] ? pci_pm_suspend+0x71/0x140 > > [ 33.275878] [] ? pci_pm_freeze+0xd0/0xd0 > > [ 33.275881] [] ? dpm_run_callback+0x39/0xd0 > > [ 33.275883] [] ? __device_suspend+0xe4/0x300 > > [ 33.275884] [] ? async_suspend+0x1e/0x90 > > [ 33.275887] [] ? async_run_entry_fn+0x43/0x150 > > [ 33.275890] [] ? process_one_work+0x148/0x3b0 > > [ 33.275892] [] ? worker_thread+0x4a/0x440 > > [ 33.275895] [] ? rescuer_thread+0x2e0/0x2e0 > > [ 33.275898] [] ? kthread+0xc1/0xe0 > > [ 33.275901] [] ? > > kthread_create_on_node+0x190/0x190 > > [ 33.275904] [] ? ret_from_fork+0x3f/0x70 > > [ 33.275907] [] ? > > kthread_create_on_node+0x190/0x190 > > [ 33.275908] ---[ end trace e1c3eb5e163b3520 ]--- > > [ 33.560558] PM: suspend of devices complete after 423.034 msecs > > [ 33.577985] PM: late suspend of devices complete after 17.589 msecs > > [ 33.579036] xhci_hcd 0000:00:14.0: System wakeup enabled by ACPI > > [ 33.594059] PM: noirq suspend of devices complete after 16.226 msecs > > [ 33.594498] ACPI: Preparing to enter system sleep state S3 > > [ 33.595066] ACPI : EC: EC stopped > > ... > > > > -- > > - Jeremiah Mahler > > I bisected the kernel and found that the following patch introduced the > bug. > > From b47161858ba13c9c7e03333132230d66e008dd55 Mon Sep 17 00:00:00 2001 > From: Chris Wilson > Date: Mon, 27 Apr 2015 13:41:17 +0100 > Subject: [PATCH] drm/i915: Implement inter-engine read-read optimisations > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > Currently, we only track the last request globally across all engines. > This prevents us from issuing concurrent read requests on e.g. the RCS > and BCS engines (or more likely the render and media engines). Without > semaphores, we incur costly stalls as we synchronise between rings - > greatly impacting the current performance of Broadwell versus Haswell in > certain workloads (like video decode). With the introduction of > reference counted requests, it is much easier to track the last request > per ring, as well as the last global write request so that we can > optimise inter-engine read read requests (as well as better optimise > certain CPU waits). > > v2: Fix inverted readonly condition for nonblocking waits. > v3: Handle non-continguous engine array after waits > v4: Rebase, tidy, rewrite ring list debugging > v5: Use obj->active as a bitfield, it looks cool > v6: Micro-optimise, mostly involving moving code around > v7: Fix retire-requests-upto for execlists (and multiple rq->ringbuf) > v8: Rebase > v9: Refactor i915_gem_object_sync() to allow the compiler to better > optimise it. > > Benchmark: igt/gem_read_read_speed > hsw:gt3e (with semaphores): > Before: Time to read-read 1024k: 275.794?s > After: Time to read-read 1024k: 123.260?s > > hsw:gt3e (w/o semaphores): > Before: Time to read-read 1024k: 230.433?s > After: Time to read-read 1024k: 124.593?s > > bdw-u (w/o semaphores): Before After > Time to read-read 1x1: 26.274?s 10.350?s > Time to read-read 128x128: 40.097?s 21.366?s > Time to read-read 256x256: 77.087?s 42.608?s > Time to read-read 512x512: 281.999?s 181.155?s > Time to read-read 1024x1024: 1196.141?s 1118.223?s > Time to read-read 2048x2048: 5639.072?s 5225.837?s > Time to read-read 4096x4096: 22401.662?s 21137.067?s > Time to read-read 8192x8192: 89617.735?s 85637.681?s > > Testcase: igt/gem_concurrent_blit (read-read and friends) > Cc: Lionel Landwerlin > Signed-off-by: Chris Wilson > Cc: Tvrtko Ursulin > Reviewed-by: Tvrtko Ursulin [v8] > [danvet: s/\/req/g] > Signed-off-by: Daniel Vetter > --- > drivers/gpu/drm/i915/i915_debugfs.c | 16 +- > drivers/gpu/drm/i915/i915_drv.h | 19 +- > drivers/gpu/drm/i915/i915_gem.c | 540 ++++++++++++++++++++------------ > drivers/gpu/drm/i915/i915_gem_context.c | 2 - > drivers/gpu/drm/i915/i915_gem_debug.c | 92 ++---- > drivers/gpu/drm/i915/i915_gpu_error.c | 19 +- > drivers/gpu/drm/i915/intel_display.c | 6 +- > drivers/gpu/drm/i915/intel_lrc.c | 19 +- > drivers/gpu/drm/i915/intel_overlay.c | 2 - > drivers/gpu/drm/i915/intel_ringbuffer.c | 26 +- > 10 files changed, 416 insertions(+), 325 deletions(-) > ... > > -- > - Jeremiah Mahler > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/