Re: [Intel-gfx] Workqueue - warning splat

From: Chris Wilson
Date: Wed Aug 28 2019 - 11:19:54 EST


Quoting Chris Clayton (2019-08-28 16:14:20)
> Hi,
>
> I've just copying 319G of data from a partition on one USB-attached (/dev/sdb3) to a partition on another USB-attached
> drive (/dev/sdc1). It's not quite finished but as it's progressed, I have been reading email and browsing web sites, so
> switching between windows from time to time.
>
> I found the splat below at the end the output from dmesg:

> [ 6048.070148] workqueue: PF_MEMALLOC task 148(kswapd0) is flushing !WQ_MEM_RECLAIM events:gen6_pm_rps_work [i915]
> [ 6048.070152] WARNING: CPU: 6 PID: 148 at kernel/workqueue.c:2598 check_flush_dependency+0x105/0x120
> [ 6048.070152] Modules linked in: uas rfcomm bnep iptable_filter xt_conntrack iptable_nat xt_MASQUERADE nf_nat
> nf_conntrack nf_defrag_ipv4 coretemp hwmon snd_hda_codec_hdmi snd_hda_codec_generic iwlmvm mac80211 uvcvideo
> videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common snd_hda_intel iwlwifi usbhid snd_hda_codec btusb
> btintel snd_hwdep x86_pkg_temp_thermal snd_hda_core cfg80211 i915
> [ 6048.070162] CPU: 6 PID: 148 Comm: kswapd0 Tainted: G U 5.3.0-rc6+ #40
> [ 6048.070163] Hardware name: PC Specialist LTD N8xxEZ /N8xxEZ , BIOS
> 1.07.08 10/04/2018
> [ 6048.070165] RIP: 0010:check_flush_dependency+0x105/0x120
> [ 6048.070166] Code: 8d 8a c0 05 00 00 49 89 e8 48 c7 c7 90 61 b5 b0 48 8d 8b b0 00 00 00 4c 89 ca 48 89 04 24 c6 05 02
> 8f 00 01 01 e8 b2 97 fe ff <0f> 0b 48 8b 04 24 e9 63 ff ff ff 80 3d eb 8e 00 01 00 0f 85 56 ff
> [ 6048.070167] RSP: 0018:ffffa6e4003679a0 EFLAGS: 00010086
> [ 6048.070167] RAX: 0000000000000000 RBX: ffff8a188d414000 RCX: 0000000000000000
> [ 6048.070168] RDX: 0000000000000063 RSI: ffffffffb125f723 RDI: ffffffffb125d28c
> [ 6048.070169] RBP: ffffffffc0466390 R08: 000005802d12a057 R09: 0000000000000063
> [ 6048.070169] R10: ffffffffb125faa0 R11: 00000000b125f70b R12: ffff8a188c809a80
> [ 6048.070170] R13: ffff8a1890a23e00 R14: 0000000000000001 R15: 0000000000000000
> [ 6048.070170] FS: 0000000000000000(0000) GS:ffff8a1890b80000(0000) knlGS:0000000000000000
> [ 6048.070171] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 6048.070172] CR2: 00000000025d1fa0 CR3: 00000004d700a004 CR4: 00000000003606e0
> [ 6048.070172] Call Trace:
> [ 6048.070175] __flush_work+0x8d/0x1d0
> [ 6048.070176] ? try_to_wake_up+0x1b9/0x3b0
> [ 6048.070177] __cancel_work_timer+0xfb/0x180
> [ 6048.070179] ? synchronize_irq+0x30/0xa0
> [ 6048.070204] ? fwtable_write32+0xf1/0x180 [i915]
> [ 6048.070212] gen6_disable_rps_interrupts+0x79/0xa0 [i915]
> [ 6048.070220] gen6_rps_idle+0xe/0xd0 [i915]
> [ 6048.070230] intel_gt_park+0x4f/0x60 [i915]
> [ 6048.070239] __intel_wakeref_put_last+0x12/0x40 [i915]
> [ 6048.070248] __engine_park+0xb7/0xc0 [i915]
>
> It might be difficult to create it again, but I guess a heads up might be useful.

Should be fixed by

commit c7302f204490f3eb4ef839bec228315bcd3ba43f
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 8 21:27:58 2019 +0100

drm/i915: Defer final intel_wakeref_put to process context

-Chris