Bug 111086

Summary: [CI][SHARDS] igt@i915_selftest@mock_requests - dmesg-warn - WARNING: .* at kernel/workqueue.c:\d+ __queue_work
Product: DRI Reporter: Martin Peres <martin.peres>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: RESOLVED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: intel-gfx-bugs
Version: XOrg git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Martin Peres 2019-07-08 09:17:03 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6410/shard-skl9/igt@i915_selftest@mock_requests.html

<6> [2426.945339] i915: Running i915_request_mock_selftests/mock_breadcrumbs_smoketest
<6> [2429.657926] Completed 11 waits for 8944 fence across 4 cpus
<4> [2430.053786] WARNING: CPU: 2 PID: 2615 at kernel/workqueue.c:1415 __queue_work+0x52f/0x670
<4> [2430.053816] Modules linked in: i915(+) vgem snd_hda_codec_hdmi x86_pkg_temp_thermal coretemp snd_hda_codec crct10dif_pclmul crc32_pclmul snd_hwdep btusb snd_hda_core btrtl ghash_clmulni_intel btbcm btintel snd_pcm bluetooth cdc_ether usbnet r8152 ecdh_generic mii ecc i2c_hid pinctrl_sunrisepoint pinctrl_intel prime_numbers [last unloaded: i915]
<4> [2430.053918] CPU: 2 PID: 2615 Comm: kworker/u8:4 Tainted: G     U            5.2.0-rc7-CI-CI_DRM_6410+ #1
<4> [2430.053931] Hardware name: Google Caroline/Caroline, BIOS MrChromebox 08/27/2018
<4> [2430.054283] Workqueue: mock contexts_free_worker [i915]
<4> [2430.054309] RIP: 0010:__queue_work+0x52f/0x670
<4> [2430.054326] Code: 24 01 01 e8 03 19 04 00 e9 9f fc ff ff 65 8b 05 ef 69 f4 7e a9 00 01 1f 00 75 0f 65 48 8b 3c 25 80 5e 01 00 f6 47 24 20 75 6f <0f> 0b 48 8d 65 d8 5b 41 5c 41 5d 41 5e 41 5f 5d c3 0f 0b e9 4c fc
<4> [2430.054338] RSP: 0018:ffffc900000f4eb0 EFLAGS: 00010006
<4> [2430.054355] RAX: 0000000080000101 RBX: ffff88816d9e8010 RCX: 0000000000000000
<4> [2430.054367] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00000000ffffffff
<4> [2430.054379] RBP: ffffc900000f4ee8 R08: 0000000000000000 R09: 0000000000000001
<4> [2430.054391] R10: ffffc900000f4eb0 R11: 0000000000000000 R12: ffff888176fd71b8
<4> [2430.054403] R13: 0000000000000010 R14: 0000000000000010 R15: ffffffff8113bd02
<4> [2430.054417] FS:  0000000000000000(0000) GS:ffff88817ab00000(0000) knlGS:0000000000000000
<4> [2430.054430] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
<4> [2430.054442] CR2: 00007fc64e360f00 CR3: 00000001795e0001 CR4: 00000000003606e0
<4> [2430.054453] Call Trace:
<4> [2430.054467]  <IRQ>
<4> [2430.054497]  ? delayed_work_timer_fn+0x10/0x10
<4> [2430.054520]  ? rcu_core+0x472/0x720
<4> [2430.054538]  rcu_work_rcufn+0x1c/0x30
<4> [2430.054557]  rcu_core+0x417/0x720
<4> [2430.054609]  __do_softirq+0xd8/0x4b9
<4> [2430.054678]  irq_exit+0xa9/0xc0
<4> [2430.054708]  smp_apic_timer_interrupt+0x9c/0x250
<4> [2430.054732]  apic_timer_interrupt+0xf/0x20
<4> [2430.054747]  </IRQ>
<4> [2430.054766] RIP: 0010:_raw_spin_unlock_irqrestore+0x4e/0x60
<4> [2430.054781] Code: c7 02 75 1f 53 9d e8 a1 d2 7e ff bf 01 00 00 00 e8 a7 4e 73 ff 65 8b 05 d8 cd 66 7e 85 c0 74 0c 5b 5d c3 e8 84 d0 7e ff 53 9d <eb> df e8 85 89 65 ff 5b 5d c3 0f 1f 84 00 00 00 00 00 53 48 8b 54
<4> [2430.054794] RSP: 0018:ffffc90000bafc88 EFLAGS: 00000286 ORIG_RAX: ffffffffffffff13
<4> [2430.054810] RAX: ffff88815c170040 RBX: 0000000000000286 RCX: 0000000000000002
<4> [2430.054822] RDX: 00000000000017ac RSI: ffff88815c170908 RDI: ffffffff8212e9e1
<4> [2430.054834] RBP: ffff88817a000a40 R08: 00000000ec5ecc4c R09: 0000000000000000
<4> [2430.054846] R10: 0000000000000000 R11: 0000000000000000 R12: ffffea00056db500
<4> [2430.054857] R13: 0000000000000001 R14: ffff88815b6d4000 R15: 0000000000000001
<4> [2430.054933]  free_debug_processing+0x27d/0x380
<4> [2430.055260]  ? intel_timeline_fini+0x46/0x1d0 [i915]
<4> [2430.055301]  __slab_free+0x337/0x4f0
<4> [2430.055325]  ? _raw_spin_unlock_irqrestore+0x39/0x60
<4> [2430.055352]  ? debug_check_no_obj_freed+0x132/0x210
<4> [2430.055386]  ? mark_held_locks+0x49/0x70
<4> [2430.055726]  ? intel_timeline_fini+0x46/0x1d0 [i915]
<4> [2430.056025]  ? mock_context_unpin+0x70/0x70 [i915]
<4> [2430.056312]  ? mock_context_unpin+0x70/0x70 [i915]
<4> [2430.056602]  intel_timeline_fini+0x46/0x1d0 [i915]
<4> [2430.057006]  mock_context_destroy+0x1e/0x80 [i915]
<4> [2430.057405]  __free_engines+0x41/0x60 [i915]
<4> [2430.057817]  i915_gem_context_free+0x52/0x1a0 [i915]
<4> [2430.058106]  contexts_free_worker+0x51/0xa0 [i915]
<4> [2430.058136]  process_one_work+0x245/0x610
<4> [2430.058184]  worker_thread+0x37/0x380
<4> [2430.058214]  ? process_one_work+0x610/0x610
<4> [2430.058232]  kthread+0x119/0x130
<4> [2430.058253]  ? kthread_park+0x80/0x80
<4> [2430.058282]  ret_from_fork+0x3a/0x50
<4> [2430.058346] irq event stamp: 595193
<4> [2430.058366] hardirqs last  enabled at (595192): [<ffffffff819a907c>] _raw_spin_unlock_irqrestore+0x4c/0x60
<4> [2430.058383] hardirqs last disabled at (595193): [<ffffffff810d11aa>] rcu_work_rcufn+0xa/0x30
<4> [2430.058402] softirqs last  enabled at (594762): [<ffffffff81c0033a>] __do_softirq+0x33a/0x4b9
<4> [2430.058422] softirqs last disabled at (595167): [<ffffffff810b6499>] irq_exit+0xa9/0xc0
<4> [2430.058440] WARNING: CPU: 2 PID: 2615 at kernel/workqueue.c:1415 __queue_work+0x52f/0x670
<4> [2430.058452] ---[ end trace 3f2b93f60698f1a3 ]---
Comment 1 CI Bug Log 2019-07-08 09:17:23 UTC
The CI Bug Log issue associated to this bug has been updated.

### New filters associated

* SKL: igt@i915_selftest@mock_requests - dmesg-warn - WARNING: .* at kernel/workqueue.c:\d+ __queue_work
  - https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6410/shard-skl9/igt@i915_selftest@mock_requests.html
  - https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13527/shard-skl2/igt@i915_selftest@mock_requests.html
  - https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_13519/shard-skl1/igt@i915_selftest@mock_requests.html
Comment 2 Chris Wilson 2019-07-08 09:33:45 UTC
commit 4fda44bf16b79a0b78fe36c6b9859e9ce2d09f43
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jul 3 18:19:13 2019 +0100

    drm/i915: Flush the workqueue before draining
    
    Trying to drain a workqueue while we may still be adding to it from
    background tasks is, according to kernel/workqueue.c, verboten. So, add
    a flush_workqueue() at the start of our cleanup procedure.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=110550
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190703171913.16585-4-chris@chris-wilson.co.uk

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.