Quoting Chris Wilson (2019-07-18 09:02:03) > The log is not flushed from inside the irq, but from a worker spawned by > the interrupt. Flushing an on-going interrupt (intel_synchronize_irq) > does not flush a concurrent intel_guc_log_handle_flush_event() and > instead we must flush the guc_ct.worker. > > <7> [159.391930] [IGT] Reading file "i915_guc_log_relay" > <5> [159.392247] i915 0000:00:02.0: GuC log buffer overflow > <5> [159.392259] i915 0000:00:02.0: GuC log buffer overflow > <4> [159.393301] ------------[ cut here ]------------ > <4> [159.393303] WARN_ON(!intel_guc_log_relay_enabled(log)) > <4> [159.393353] WARNING: CPU: 4 PID: 290 at drivers/gpu/drm/i915/gt/uc/intel_guc_log.c:247 guc_log_capture_logs+0x39d/0x470 [i915] > <4> [159.393355] Modules linked in: snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic i915 x86_pkg_temp_thermal coretemp snd_hda_intel snd_hda_codec mei_hdcp crct10dif_pclmul e1000e cdc_ether crc32_pclmul snd_hwdep usbnet mii snd_hda_core ghash_clmulni_intel snd_pcm ptp > <7> [159.393363] [IGT] Reading file "i915_guc_log_level" > <4> [159.393364] pps_core mei_me mei prime_numbers > <4> [159.393368] CPU: 4 PID: 290 Comm: kworker/4:1H Tainted: G U 5.2.0-CI-CI_DRM_6502+ #1 > <4> [159.393369] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP TLC, BIOS ICLSFWR1.R00.3234.A01.1906141750 06/14/2019 > <4> [159.393402] Workqueue: events_highpri capture_logs_work [i915] > <4> [159.393433] RIP: 0010:guc_log_capture_logs+0x39d/0x470 [i915] > <4> [159.393436] Code: c9 3a a0 e8 95 8e 3d e1 4d 89 f3 4c 8b 14 24 48 89 da e9 3f fe ff ff 48 c7 c6 c8 55 38 a0 48 c7 c7 cc c9 3a a0 e8 93 c1 e2 e0 <0f> 0b e9 c5 fe ff ff 48 c7 c6 00 30 35 a0 48 c7 c7 c0 ee 42 a0 e8 > <4> [159.393439] RSP: 0018:ffffc900003b3dc0 EFLAGS: 00010282 > <7> [159.393440] [IGT] Reading file "i915_dp_test_active" > <4> [159.393442] RAX: 0000000000000000 RBX: ffff88848ac0b8e0 RCX: 0000000000000004 > <4> [159.393446] RDX: 000000000000202b RSI: ffff888497b64908 RDI: ffffffff8212d681 > <4> [159.393448] RBP: ffffc900003b3ec8 R08: 00000000ca1d5cb3 R09: 0000000000000000 > <4> [159.393451] R10: ffffc900003b3dc0 R11: 0000000000000000 R12: ffff88849fe39b40 > <4> [159.393453] R13: ffff88848ac0b8c8 R14: 0000000000000000 R15: 0000000000000000 > <4> [159.393455] FS: 0000000000000000(0000) GS:ffff88849fe00000(0000) knlGS:0000000000000000 > <4> [159.393457] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > <4> [159.393460] CR2: 00007f42b9b35778 CR3: 0000000005210006 CR4: 0000000000760ee0 > <4> [159.393462] PKRU: 55555554 > <4> [159.393463] Call Trace: > <4> [159.393469] ? process_one_work+0x1bf/0x610 > <4> [159.393474] process_one_work+0x245/0x610 > <4> [159.393479] worker_thread+0x37/0x380 > <4> [159.393482] ? process_one_work+0x610/0x610 > <4> [159.393484] kthread+0x119/0x130 > <4> [159.393487] ? kthread_park+0x80/0x80 > <4> [159.393491] ret_from_fork+0x24/0x50 > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx> > Cc: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx> > --- > drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c > index 77fda1e85d3b..e80c1eb309ee 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c > @@ -613,12 +613,11 @@ void intel_guc_log_relay_flush(struct intel_guc_log *log) > void intel_guc_log_relay_close(struct intel_guc_log *log) > { > struct intel_guc *guc = log_to_guc(log); > - struct drm_i915_private *i915 = guc_to_gt(guc)->i915; > > guc_log_disable_flush_events(log); > - intel_synchronize_irq(i915); Ping. intel_synchronize_irq() is ineffective here. > - flush_work(&log->relay.flush_work); > + flush_work(&guc->ct.worker); > + cancel_work_sync(&log->relay.flush_work); Your objection was that you haven't provided a guc_ct_sync()... -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx