New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 605774 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug-Regression
Gfx



Sign in to add a comment

Lots of kernel WARN on i915_gem_obj_to_ggtt on kernel 3.14

Project Member Reported by rookrishna@chromium.org, Apr 21 2016

Issue description

Chrome OS 	52.0.2712.0/8222.0.0 Samus

Please specify Cr-* of the system to which this bug/feature applies (add
the label below).

Steps To Reproduce:
(1) Suspend and Resume Samus on TOT build
(2)
(3)

Expected Result: Should be able to get to sign-in /lock screen.

Actual Result: Screen turns black and shuts down . Have to power-on the device.

How frequently does this problem reproduce? (Always, sometimes, hard to
reproduce?)

Always on Samus

What is the impact to the user, and is there a workaround? If so, what is
it?

Please provide any additional information below. Attach a screen shot or
log if possible.


 
Cc: sontis@chromium.org

Comment 3 by ka...@chromium.org, Apr 21 2016

Cc: derat@chromium.org dbasehore@chromium.org tbroch@chromium.org
Components: -OS>Kernel OS>Kernel>Power
rookrishna, how do you suspend the device?
#3 close the lid of the device
Seen this issue on Minnie too.

Comment 6 by ka...@chromium.org, Apr 21 2016

A lot of kernel warnings observed in logs like

2016-04-21T15:44:22.319052-07:00 WARNING kernel: [    3.333731] ------------[ cut here ]------------
2016-04-21T15:44:22.319064-07:00 WARNING kernel: [    3.333745] WARNING: CPU: 2 PID: 3111 at /mnt/host/source/src/third_party/kernel/v3.14/drivers/gpu/drm/i915/i915_gem.c:5125 i915_gem_obj_to_ggtt+0x4b/0x4f()
2016-04-21T15:44:22.319069-07:00 NOTICE kernel: [    3.333756] Modules linked in: nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables btusb btbcm btintel bluetooth iio_trig_sysfs iwlmvm iwl7000_mac80211 snd_hda_codec_hdmi iwlwifi cfg80211 snd_hda_intel snd_hda_controller snd_hda_codec cros_ec_accel kfifo_buf snd_hwdep industrialio joydev snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device ppp_async ppp_generic slhc tun
2016-04-21T15:44:22.319072-07:00 NOTICE kernel: [    3.333818] CPU: 2 PID: 3111 Comm: CompositorTileW Not tainted 3.14.0 #1
2016-04-21T15:44:22.319073-07:00 NOTICE kernel: [    3.333825] Hardware name: GOOGLE Samus, BIOS Google_Samus.6300.174.0 04/02/2015
2016-04-21T15:44:22.319075-07:00 NOTICE kernel: [    3.333832]  0000000000000000 0000000033aa9751 ffff880074c9dde8 ffffffff88da4cf3
2016-04-21T15:44:22.319077-07:00 NOTICE kernel: [    3.333842]  0000000000000000 ffff880074c9de20 ffffffff8883df6b ffffffff88aeb7e4
2016-04-21T15:44:22.319079-07:00 NOTICE kernel: [    3.333851]  ffff8802747c6f00 0000000000000000 ffff880274dd07c8 0000000040086200
2016-04-21T15:44:22.319080-07:00 NOTICE kernel: [    3.333861] Call Trace:
2016-04-21T15:44:22.319083-07:00 NOTICE kernel: [    3.333869]  [<ffffffff88da4cf3>] dump_stack+0x4d/0x6f
2016-04-21T15:44:22.319084-07:00 NOTICE kernel: [    3.333877]  [<ffffffff8883df6b>] warn_slowpath_common+0x7f/0x98
2016-04-21T15:44:22.319086-07:00 NOTICE kernel: [    3.333884]  [<ffffffff88aeb7e4>] ? i915_gem_obj_to_ggtt+0x4b/0x4f
2016-04-21T15:44:22.319088-07:00 NOTICE kernel: [    3.333892]  [<ffffffff8883e07d>] warn_slowpath_null+0x1a/0x1c
2016-04-21T15:44:22.319089-07:00 NOTICE kernel: [    3.333898]  [<ffffffff88aeb7e4>] i915_gem_obj_to_ggtt+0x4b/0x4f
2016-04-21T15:44:22.319091-07:00 NOTICE kernel: [    3.333905]  [<ffffffff88aeb8c8>] i915_gem_object_set_to_gtt_domain+0xe0/0x113
2016-04-21T15:44:22.319093-07:00 NOTICE kernel: [    3.333915]  [<ffffffff88b3b548>] i915_gem_end_cpu_access+0x2e/0x42
2016-04-21T15:44:22.319095-07:00 NOTICE kernel: [    3.333923]  [<ffffffff88b6d5b3>] dma_buf_end_cpu_access+0x3f/0x44
2016-04-21T15:44:22.319096-07:00 NOTICE kernel: [    3.333931]  [<ffffffff88b6d8ac>] dma_buf_ioctl+0x8d/0xc5
2016-04-21T15:44:22.319098-07:00 NOTICE kernel: [    3.333938]  [<ffffffff8891c708>] do_vfs_ioctl+0x355/0x416
2016-04-21T15:44:22.319100-07:00 NOTICE kernel: [    3.333945]  [<ffffffff88924ec7>] ? __fget+0x6f/0x79
2016-04-21T15:44:22.319102-07:00 NOTICE kernel: [    3.333951]  [<ffffffff8891c820>] SyS_ioctl+0x57/0x79
2016-04-21T15:44:22.319104-07:00 NOTICE kernel: [    3.333958]  [<ffffffff88daa09c>] system_call_fastpath+0x20/0x25
2016-04-21T15:44:22.319105-07:00 WARNING kernel: [    3.333965] ---[ end trace 24f8672c7ed89e88 ]---

Comment 7 by h...@chromium.org, Apr 21 2016

Cc: marc...@chromium.org h...@chromium.org

Comment 8 by marcheu@google.com, Apr 21 2016

Cc: tiago.vi...@intel.com

Comment 9 by ka...@chromium.org, Apr 22 2016

Components: OS>Kernel>Graphics

Comment 10 by h...@chromium.org, Apr 22 2016

If I add --disable-native-gpu-memory-buffers as well as --disable-zero-copy to the chrome commandline then the warnings disappear.

Comment 11 Deleted

Comment 12 by h...@chromium.org, Apr 22 2016

To clarify on #10: recently the cmdline argument "--enable-native-gpu-memory-buffer" was added by default. The "disable-zero-copy" seems unrelated to this warning.

To guarantee that this option is disabled, add the following to /etc/chrome_dev.conf:

--disable-native-gpu-memory-buffer
!--enable-native-gpu-memory-buffer

Comment 13 by h...@chromium.org, Apr 22 2016

Cc: dongseon...@intel.com
dongseong.hwang@intel.com: this seems to have started since the USE flags were added to haswell.

See bug 475633: Use native GpuMemoryBuffers on Intel ChromeOS based on Ozone Freon
Samus has enabled native-gpu-memory-buffer since Jan.29th. As it dies at dma_buf_end_cpu_access, dma_buf synchronization logic seems to have bug, which we added very recently. Let me comments out the synchronization logic.

Samus is one of Broadwell board. Does Haswell have the same issue? 
#5 - Minnie is based on rockchip, so native-gpu-memory-buffer is not enabled.
So the kernel warnings in #6 might not be related to this issue.

#10 - it makes sense warning disappear, but do you see the cmdline fixes this issue?

I tested Pixel-2. The cmdline doesn't fix this issue. It's my reproduce procedure.
- log in chromebook
- close top cover
- open top cover

The device is turned off sometimes, no matter whether native-gpu-memory-buffer is not enabled or not.
I guess hibernate code might have issues.
Owner: h...@chromium.org

Comment 17 by h...@chromium.org, Apr 22 2016

Status: Assigned (was: Untriaged)
re:#16 Assigned

Comment 18 by h...@chromium.org, Apr 22 2016

re:#15 Can you clarify which "issue" it is? Are you referring to the kernel warnings observed in comment #6, or a general suspend/resume bug?

For the kernel warnings I'm fairly certain they require native-gpu-memory-buffer. We may have a separate suspend/resume issue that is not related to the kernel warnings, however.

Comment 19 by h...@chromium.org, Apr 22 2016

Let's fix the warning in this bug.

For the suspend/resume screen black issue, see  bug 605968 

Comment 20 by h...@chromium.org, Apr 23 2016

Labels: GFX
Status: Started (was: Assigned)
For the warning I'm doing some bisect. I agree that we have enabled native-gpu-memory-buffer for a while so it is strange why this only started recently.

I have a repro case on 8212.0.0 but not on 8200.0.0

Comment 21 by h...@chromium.org, Apr 23 2016

I have determined that the regression started at the chromeos-kernel-3.14 backport (see https://bugs.chromium.org/p/chromium/issues/detail?id=602675#c5)

commit 6b1c085ae9cffc987b6d2e8258ff0304ec4e470f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu Apr 14 20:08:00 2016

BACKPORT: drm/i915: Broaden application of set-domain(GTT)

Comment 22 by h...@chromium.org, Apr 23 2016

Specifically, commit 6b1c085ae9cffc987b6d2e8258ff0304ec4e470f removed the following check on i915_gem_object_is_inactive(obj) before calling i915_gem_obj_to_gtt(), thus we're seeing WARNs now.

@@ -3515,13 +3509,10 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
                                            old_write_domain);
 
        /* And bump the LRU for this access */
-       if (i915_gem_object_is_inactive(obj)) {
-               struct i915_vma *vma = i915_gem_obj_to_ggtt(obj);
-               if (vma)
-                       list_move_tail(&vma->mm_list,
-                                      &dev_priv->gtt.base.inactive_list);
-
-       }
+       vma = i915_gem_obj_to_ggtt(obj);
+       if (vma && drm_mm_node_allocated(&vma->node) && !obj->active)
+               list_move_tail(&vma->mm_list,
+                              &to_i915(obj->base.dev)->gtt.base.inactive_list);
 
        return 0;
}

Comment 23 by h...@chromium.org, Apr 23 2016

This warning is not printed on 3.18 or upstream, due to the i915_ggtt_view infrastructure changes there, and i915_gem_obj_to_ggtt gets mapped to i915_gem_obj_to_ggtt_view, where a list_for_each_entry(vma, &obj->vma_list, vma_link) is used without a WARN.

Comment 24 by h...@chromium.org, Apr 23 2016

Summary: Lots of kernel WARN on i915_gem_obj_to_ggtt on kernel 3.14 (was: Black screen/device shuts down with suspend and resume )
Updating bug summary. Let's fix the kernel WARN in this tracker.

For the "black screen in suspend/resume" issue please see  bug 605968 .
Project Member

Comment 25 by bugdroid1@chromium.org, Apr 23 2016

Labels: merge-merged-chromeos-3.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/3873117673b8f3872410d6f0bb3a3150d5901730

commit 3873117673b8f3872410d6f0bb3a3150d5901730
Author: Haixia Shi <hshi@chromium.org>
Date: Sat Apr 23 01:02:50 2016

drm/i915: fix kernel WARN in i915_gem_obj_to_ggtt

The kernel WARN started at commit 6b1c085a9cff
"BACKPORT: drm/i915: Broaden application of set-domain(GTT)"

BUG= chromium:605774 
TEST=verify no more warnings
Signed-off-by: Haixia Shi <hshi@chromium.org>

Change-Id: Id49d2d22e0b9f6bacb518c134f73dae2e242c3e0
Reviewed-on: https://chromium-review.googlesource.com/340480
Commit-Ready: Haixia Shi <hshi@chromium.org>
Tested-by: Haixia Shi <hshi@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/3873117673b8f3872410d6f0bb3a3150d5901730/drivers/gpu/drm/i915/i915_gem.c

Haixia, great job.

re:#18 - yes, I'm talking about kernel warning. It looks fixed now.

Comment 27 by h...@chromium.org, Apr 25 2016

Status: Fixed (was: Started)
Project Member

Comment 28 by bugdroid1@chromium.org, May 16 2016

Labels: merge-merged-release-R51-8172.B-chromeos-3.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ca80bd54462f88af574e994b8532eb176de5edc2

commit ca80bd54462f88af574e994b8532eb176de5edc2
Author: Haixia Shi <hshi@chromium.org>
Date: Sat Apr 23 01:02:50 2016

drm/i915: fix kernel WARN in i915_gem_obj_to_ggtt

The kernel WARN started at commit 6b1c085a9cff
"BACKPORT: drm/i915: Broaden application of set-domain(GTT)"

BUG= chromium:605774 , chromium:611968 
TEST=verify no more warnings
Signed-off-by: Haixia Shi <hshi@chromium.org>

Change-Id: Id49d2d22e0b9f6bacb518c134f73dae2e242c3e0
Reviewed-on: https://chromium-review.googlesource.com/340480
Commit-Ready: Haixia Shi <hshi@chromium.org>
Tested-by: Haixia Shi <hshi@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
(cherry picked from commit 3873117673b8f3872410d6f0bb3a3150d5901730)
Signed-off-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/344910
Reviewed-by: Haixia Shi <hshi@chromium.org>

[modify] https://crrev.com/ca80bd54462f88af574e994b8532eb176de5edc2/drivers/gpu/drm/i915/i915_gem.c

Comment 29 by shrawan@google.com, May 17 2016

Status: Verified (was: Fixed)
Verified the fix with M-52 (8334.0.0) on samus. 

Sign in to add a comment