Re: [Linux v4.10.0-rc1] call-traces after suspend-resume (pm? i915? cpu/hotplug?)

From: Chris Wilson
Date: Tue Dec 27 2016 - 05:24:59 EST


On Tue, Dec 27, 2016 at 12:09:22AM +0100, Sedat Dilek wrote:
> [ Add some pm | i915 | x86 folks ]
>
> Hi,
>
> I have built Linux v4.10-rc1 today on my Ubuntu/precise AMD64 system
> and I see some call-traces.
> It is reproducible on suspend and resume.
>
> I cannot say which area touches the problem or if these are several
> independent problems.
>
> For a full dmesg-log see attachments (my linux-config is attached, too).
>
> Here some hunks...
>
> [ 29.003601] BUG: sleeping function called from invalid context at
> drivers/base/power/runtime.c:1032
> [ 29.003608] in_atomic(): 1, irqs_disabled(): 0, pid: 1469, name: Xorg
> [ 29.003610] 1 lock held by Xorg/1469:
> [ 29.003611] #0: (&dev->struct_mutex){+.+.+.}, at:
> [<ffffffffa0623c13>] i915_mutex_lock_interruptible+0x43/0x140 [i915]
> [ 29.003653] CPU: 0 PID: 1469 Comm: Xorg Not tainted
> 4.10.0-rc1-1-iniza-small #1
> [ 29.003655] Hardware name: SAMSUNG ELECTRONICS CO., LTD.
> 530U3BI/530U4BI/530U4BH/530U3BI/530U4BI/530U4BH, BIOS 13XK 03/28/2013
> [ 29.003656] Call Trace:
> [ 29.003663] dump_stack+0x85/0xc2
> [ 29.003666] ___might_sleep+0x196/0x260
> [ 29.003668] __might_sleep+0x53/0xb0
> [ 29.003671] __pm_runtime_resume+0x7a/0x90
> [ 29.003691] intel_runtime_pm_get+0x25/0x90 [i915]
> [ 29.003711] aliasing_gtt_bind_vma+0xaa/0xf0 [i915]
> [ 29.003733] i915_vma_bind+0xaf/0x1e0 [i915]
> [ 29.003752] i915_gem_execbuffer_relocate_entry+0x513/0x6f0 [i915]
> [ 29.003755] ? find_get_entry+0x5/0x240
> [ 29.003774] i915_gem_execbuffer_relocate_vma.isra.34+0x188/0x250 [i915]
> [ 29.003796] ? __i915_vma_do_pin+0x334/0x590 [i915]
> [ 29.003815] ? i915_gem_execbuffer_reserve_vma.isra.31+0x152/0x1f0 [i915]
> [ 29.003833] ? i915_gem_execbuffer_reserve.isra.32+0x372/0x3a0 [i915]
> [ 29.003851] i915_gem_do_execbuffer.isra.38+0xa70/0x1a40 [i915]
> [ 29.003854] ? __might_fault+0x4e/0xb0
> [ 29.003872] i915_gem_execbuffer2+0xc5/0x260 [i915]
> [ 29.003873] ? __might_fault+0x4e/0xb0
> [ 29.003888] drm_ioctl+0x206/0x450 [drm]
> [ 29.003913] ? i915_gem_execbuffer+0x340/0x340 [i915]
> [ 29.003918] ? __fget+0x5/0x200
> [ 29.003922] do_vfs_ioctl+0x91/0x6f0
> [ 29.003925] ? __fget+0x111/0x200
> [ 29.003926] ? __fget+0x5/0x200
> [ 29.003929] SyS_ioctl+0x79/0x90
> [ 29.003934] entry_SYSCALL_64_fastpath+0x23/0xc6
> [ 29.003936] RIP: 0033:0x7fb9e09e7bb7
> [ 29.003938] RSP: 002b:00007ffe2dba2ea8 EFLAGS: 00003202 ORIG_RAX:
> 0000000000000010
> [ 29.003941] RAX: ffffffffffffffda RBX: 0000000000000012 RCX: 00007fb9e09e7bb7
> [ 29.003942] RDX: 00007ffe2dba2fa8 RSI: 0000000040406469 RDI: 0000000000000009
> [ 29.003944] RBP: 00007ffe2dba2dc0 R08: 0000000000000040 R09: 0101010101010101
> [ 29.003945] R10: 0000000000000000 R11: 0000000000003202 R12: 0000000000000008
> [ 29.003947] R13: 00000000000000f5 R14: 0000000000000000 R15: 0000000000000000

This should be independent of suspend/resume and should be fixed with
https://patchwork.freedesktop.org/patch/116373/

commit ebc0808fa2da0548a78e715858024cb81cd732bc
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date: Tue Oct 18 13:02:51 2016 +0100

drm/i915: Restrict pagefault disabling to just around copy_from_user()

It is in drm-intel-next-fixes, so should be picked up 4.10 in due
course.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre