Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Warnings on suspend in gen6_gt_force_wake_* on Sandy Bridge
@ 2011-06-16 18:52 Andrey Rahmatullin
  2011-06-16 21:36 ` [PATCH] drm/i915: yet another forcewake lock fix Ben Widawsky
  0 siblings, 1 reply; 2+ messages in thread
From: Andrey Rahmatullin @ 2011-06-16 18:52 UTC (permalink / raw)
  To: intel-gfx, Keith Packard, dri-devel; +Cc: Ben Widawsky


[-- Attachment #1.1: Type: text/plain, Size: 3495 bytes --]

Hello. I'm trying latest Linus tree (v3.0-rc3-135-g19a1166) and the
suspend process generates lots of WARNINGs from i915 driver, this didn't
happen on 2.6.39 and apparently on 3.0-rc2 too.

The hardware is ASUS K53E with i5 2410M, so the chip is Intel HD 3000. 

A sample warning:

[  182.052219] WARNING: at drivers/gpu/drm/i915/i915_drv.c:322 gen6_gt_force_wake_get+0x25/0x9e [i915]()
[  182.052224] Hardware name: K53E
[  182.052226] Modules linked in: af_packet rfcomm bnep cpufreq_userspace
cpufreq_stats cpufreq_powersave cpufreq_ondemand acpi_cpufreq freq_table
mperf uinput fuse nfsd nfs lockd fscache auth_rpcgss nfs_acl sunrpc ipv6
snd_hda_codec_hdmi snd_hda_codec_realtek btusb bluetooth uvcvideo videodev
v4l2_compat_ioctl32 crc16 arc4 i915 drm_kms_helper drm asus_nb_wmi ath9k
snd_hda_intel snd_hda_codec asus_wmi i2c_algo_bit mac80211 sparse_keymap
pci_hotplug snd_hwdep snd_pcm ath9k_common ath9k_hw wmi video ath snd_seq
snd_timer intel_agp backlight mei(C) cfg80211 snd_seq_device intel_gtt
i2c_i801 i2c_core snd agpgart evdev soundcore snd_page_alloc battery ac
psmouse processor button dm_mod sg sr_mod cdrom thermal thermal_sys hwmon
usbcore atl1c [last unloaded: ehci_hcd]
[  182.052288] Pid: 596, comm: kworker/u:7 Tainted: G        WC 3.0.0-rc3-wrar-sabine+ #3
[  182.052293] Call Trace:
[  182.052296]  [<ffffffff81035331>] warn_slowpath_common+0x7e/0x96
[  182.052301]  [<ffffffff8103535e>] warn_slowpath_null+0x15/0x17
[  182.052308]  [<ffffffffa0287437>] gen6_gt_force_wake_get+0x25/0x9e [i915]
[  182.052316]  [<ffffffffa0291192>] i915_read8+0x2d/0x4f [i915]
[  182.052325]  [<ffffffffa0293258>] i915_restore_display+0x1038/0x10b7 [i915]
[  182.052330]  [<ffffffff812dce95>] ? _raw_spin_unlock_irqrestore+0x20/0x2b
[  182.052339]  [<ffffffffa029350e>] i915_restore_state+0x53/0x1f1 [i915]
[  182.052345]  [<ffffffffa02870ef>] i915_drm_thaw+0x4c/0xd3 [i915]
[  182.052352]  [<ffffffffa0287338>] i915_resume+0x40/0x57 [i915]
[  182.052359]  [<ffffffffa0287360>] i915_pm_resume+0x11/0x13 [i915]
[  182.052363]  [<ffffffff811a9846>] pci_pm_resume+0x87/0x9c
[  182.052366]  [<ffffffff81211b96>] pm_op+0xa4/0x144
[  182.052370]  [<ffffffff81050ca5>] ? async_schedule+0x12/0x12
[  182.052374]  [<ffffffff81211ead>] device_resume+0x8e/0xc6
[  182.052377]  [<ffffffff810311a3>] ? try_to_wake_up+0x1be/0x1d0
[  182.052381]  [<ffffffff81211eff>] async_resume+0x1a/0x42
[  182.052385]  [<ffffffff81050d42>] async_run_entry_fn+0x9d/0x14f
[  182.052389]  [<ffffffff81050dbb>] ? async_run_entry_fn+0x116/0x14f
[  182.052393]  [<ffffffff810471aa>] process_one_work+0x13c/0x21e
[  182.052397]  [<ffffffff81047fce>] worker_thread+0xce/0x152
[  182.052401]  [<ffffffff81047f00>] ? manage_workers.isra.29+0x16c/0x16c
[  182.052405]  [<ffffffff8104b22c>] kthread+0x7f/0x87
[  182.052409]  [<ffffffff812de754>] kernel_thread_helper+0x4/0x10
[  182.052413]  [<ffffffff8104b1ad>] ? kthread_worker_fn+0x141/0x141
[  182.052417]  [<ffffffff812de750>] ? gs_change+0xb/0xb
[  182.052420] ---[ end trace 26bf0be9378ff57c ]---

Then almost the same but with
[  182.052083]  [<ffffffff81035331>] warn_slowpath_common+0x7e/0x96
[  182.052087]  [<ffffffff8103535e>] warn_slowpath_null+0x15/0x17
[  182.052094]  [<ffffffffa02874d4>] gen6_gt_force_wake_put+0x24/0x4d [i915]
[  182.052102]  [<ffffffffa02911a2>] i915_read8+0x3d/0x4f [i915]

These two warnings repeat for a total of 45 times, statring and ending
with _put one.

-- 
WBR, wRAR

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH] drm/i915: yet another forcewake lock fix
  2011-06-16 18:52 Warnings on suspend in gen6_gt_force_wake_* on Sandy Bridge Andrey Rahmatullin
@ 2011-06-16 21:36 ` Ben Widawsky
  0 siblings, 0 replies; 2+ messages in thread
From: Ben Widawsky @ 2011-06-16 21:36 UTC (permalink / raw)
  To: Andrey Rahmatullin; +Cc: intel-gfx, dri-devel

Resume is missing a locks on gt sleepable registers.
---
 drivers/gpu/drm/i915/i915_suspend.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index 60a94d2..9259dcf 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -780,6 +780,8 @@ void i915_restore_display(struct drm_device *dev)
 		I915_WRITE(CPU_VGACNTRL, dev_priv->saveVGACNTRL);
 	else
 		I915_WRITE(VGACNTRL, dev_priv->saveVGACNTRL);
+
+	mutex_lock(&dev->struct_mutex);
 	I915_WRITE(VGA0, dev_priv->saveVGA0);
 	I915_WRITE(VGA1, dev_priv->saveVGA1);
 	I915_WRITE(VGA_PD, dev_priv->saveVGA_PD);
@@ -787,6 +789,7 @@ void i915_restore_display(struct drm_device *dev)
 	udelay(150);
 
 	i915_restore_vga(dev);
+	mutex_unlock(&dev->struct_mutex);
 }
 
 int i915_save_state(struct drm_device *dev)
-- 
1.7.5.2
-- 
I can't test this right now because I cannot resume from suspend due to my USB
harddrive not coming back for some reason. I think this should cover the case
you're hitting though.

Ben

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-06-16 21:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-16 18:52 Warnings on suspend in gen6_gt_force_wake_* on Sandy Bridge Andrey Rahmatullin
2011-06-16 21:36 ` [PATCH] drm/i915: yet another forcewake lock fix Ben Widawsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox