From patchwork Sun Aug 31 12:05:35 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Galbraith X-Patchwork-Id: 4817081 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 20523C033A for ; Mon, 1 Sep 2014 06:57:51 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 0C4C920170 for ; Mon, 1 Sep 2014 06:57:50 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id CF10C200F4 for ; Mon, 1 Sep 2014 06:57:48 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 56CAB6E21B; Sun, 31 Aug 2014 23:57:47 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by gabe.freedesktop.org (Postfix) with ESMTP id 2D2DE6E2CB for ; Sun, 31 Aug 2014 05:05:40 -0700 (PDT) Received: by mail-lb0-f182.google.com with SMTP id u10so4518129lbd.41 for ; Sun, 31 Aug 2014 05:05:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:subject:from:to:cc:date:in-reply-to:references :content-type:content-transfer-encoding:mime-version; bh=QFidIKRvPGZjpYy2lKjtQmnWgZnzi1vp7+KPKS6zTAY=; b=CoSmDzaJeKorCHvOVoX9PBs0bnC0WEhqpNJpIRAxmSqCvDUMJOK1+8D4LpqctuNYxy sGcmWswGs5sUK2nljyV8V5o5X/Dol7cvNDgE0Sf1l/9BRf9AlCN7XbVAbSGY1Wvm4fHI U5s5JFBdQBKfJ5lZoBDiIFzWRRtH9BFeyBSvKuJVW8tCeeubCwZ2Ra/bmUVrotVMyfRO IQGCfC3L6tc+yaQrcpw+oIcnR9r4ta3snF8E/jwEpUHqtFxCeGHh3zCzc17IWjJprrI/ ExTv5HH1Z2j4DM/ISQoab8FJ4WRMXWlqr+hqhTuMrS9f0+ccq0/n+OxjXbsClwC3ogw6 ZC7g== X-Received: by 10.112.202.106 with SMTP id kh10mr21357609lbc.66.1409486738818; Sun, 31 Aug 2014 05:05:38 -0700 (PDT) Received: from [192.168.1.2] (host-188-174-240-185.customer.m-online.net. [188.174.240.185]) by mx.google.com with ESMTPSA id xc7sm8468777lbb.21.2014.08.31.05.05.36 for (version=SSLv3 cipher=RC4-SHA bits=128/128); Sun, 31 Aug 2014 05:05:37 -0700 (PDT) Message-ID: <1409486735.4991.19.camel@marge.simpson.net> From: Mike Galbraith To: LKML Date: Sun, 31 Aug 2014 14:05:35 +0200 In-Reply-To: <1409382202.5141.36.camel@marge.simpson.net> References: <1409382202.5141.36.camel@marge.simpson.net> X-Mailer: Evolution 3.2.3 Mime-Version: 1.0 X-Mailman-Approved-At: Sun, 31 Aug 2014 23:57:46 -0700 Cc: Daniel Vetter , intel-gfx , Dave Airlie Subject: Re: [Intel-gfx] [drm/i915/3.17] panic in i915_digport_work_func X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-5.7 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Non-deterministic explosion culprit is the below. The commit says it adds mysterious acronyms to Haswell, so I suspect my little core2 lappy isn't ever supposed to see this code. The ftrace buffer is in fact empty after a successful boot. commit 0e32b39ceed665bfa4a77a4bc307b6652b991632 Author: Dave Airlie Date: Fri May 2 14:02:48 2014 +1000 drm/i915: add DP 1.2 MST support (v0.7) This adds DP 1.2 MST support on Haswell systems. [ 4.251017] ********************************************************** [ 4.251018] ** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE ** [ 4.251019] ** ** [ 4.251020] ** trace_printk() being used. Allocating extra memory. ** [ 4.251021] ** ** [ 4.251021] ** This means that this is a DEBUG kernel and it is ** [ 4.251022] ** unsafe for produciton use. ** [ 4.251023] ** ** [ 4.251024] ** If you see this message and you are not debugging ** [ 4.251024] ** the kernel, report this immediately to your vendor! ** [ 4.251025] ** ** [ 4.251026] ** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE ** [ 4.251027] ********************************************************** [ 4.375162] [drm] Memory usable by graphics device = 2048M [ 4.382963] [drm] Replacing VGA console driver [ 4.390710] checking generic (d0000000 7ff0000) vs hw (d0000000 10000000) [ 4.398617] fb: switching to inteldrmfb from VESA VGA [ 4.406578] Console: switching to colour dummy device 80x25 [ 4.432283] i915 0000:00:02.0: irq 29 for MSI/MSI-X [ 4.432327] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 4.432335] [drm] Driver supports precise vblank timestamp query. [ 4.432437] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 4.521746] BUG: unable to handle kernel paging request at ffffc900108c4000 [ 4.521781] IP: [] gen4_read32+0x3d/0xc0 [i915] [ 4.521843] PGD 13f021067 PUD 13f022067 PMD 136193067 PTE 0 [ 4.521860] Oops: 0000 [#1] SMP [ 4.521872] Dumping ftrace buffer: [ 4.521880] --------------------------------- [ 4.521936] udevd-120 1d.h. 4672095us : i9xx_hpd_irq_handler: PIN 1 continue [ 4.521987] udevd-120 1d.h. 4672097us : i9xx_hpd_irq_handler: PIN 2 continue [ 4.522036] udevd-120 1d.h. 4672098us : i9xx_hpd_irq_handler: PIN 3 continue [ 4.522085] udevd-120 1d.h. 4672099us : i9xx_hpd_irq_handler: PIN 4 continue [ 4.522134] udevd-120 1d.h. 4672099us : i9xx_hpd_irq_handler: PIN 5 continue [ 4.522183] udevd-120 1d.h. 4672100us : i9xx_hpd_irq_handler: PORT 3 PIN 6 continue [ 4.522233] udevd-120 1d.h. 4672101us : i9xx_hpd_irq_handler: PORT 3 PIN 6 sets queue_dig = true [ 4.522283] udevd-120 1d.h. 4672102us : i9xx_hpd_irq_handler: QUEUE [ 4.522331] <...>-6 0.... 4672125us : i915_digport_work_func: WORK [ 4.522339] --------------------------------- [ 4.522345] Modules linked in: i915(+) drm_kms_helper drm i2c_algo_bit thermal video processor thermal_sys button scsi_dh_rdac scsi_dh_alua scsi_dh_emc scsi_dh_hp_sw scsi_dh netconsole atl1c [ 4.522401] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 3.17.0-bisect #222 [ 4.522408] Hardware name: TOSHIBA SATELLITE T130/SATELLITE T130, BIOS V1.70 09/29/2009 [ 4.522453] Workqueue: i915-dp i915_digport_work_func [i915] [ 4.522462] task: ffff88013f166150 ti: ffff88013f168000 task.ti: ffff88013f168000 [ 4.522470] RIP: 0010:[] [] gen4_read32+0x3d/0xc0 [i915] [ 4.522520] RSP: 0018:ffff88013f16bd48 EFLAGS: 00010086 [ 4.522527] RAX: 0000000000000297 RBX: ffff88013b1f0000 RCX: 00000000000000da [ 4.522533] RDX: ffffc900108c4000 RSI: ffff88013b1f93c8 RDI: ffff88013b1f0068 [ 4.522540] RBP: ffff88013f16bd70 R08: 0000000000000001 R09: 0000000000000024 [ 4.522547] R10: 00000001167af8eb R11: 0000000000000006 R12: 00000000000c4000 [ 4.522553] R13: ffff88013b1f0068 R14: 0000000000000001 R15: 0000000000000001 [ 4.522560] FS: 0000000000000000(0000) GS:ffff88013fc00000(0000) knlGS:0000000000000000 [ 4.522568] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [ 4.522575] CR2: ffffc900108c4000 CR3: 0000000001a15000 CR4: 00000000000407f0 [ 4.522581] Stack: [ 4.522586] 0000000000800000 0000000000000011 ffff88013584e000 0000000000000001 [ 4.522601] ffff880036c92000 ffff88013f16bd88 ffffffffa01537b3 ffff88013b1f0000 [ 4.522617] ffff88013f16bdc8 ffffffffa0179a73 ffff880036c920e0 ffff88013b1f9400 [ 4.522632] Call Trace: [ 4.522681] [] ibx_digital_port_connected+0x63/0xb0 [i915] [ 4.522733] [] intel_dp_hpd_pulse+0xc3/0x1f0 [i915] [ 4.522777] [] i915_digport_work_func+0xb0/0x130 [i915] [ 4.522789] [] process_one_work+0x186/0x3f0 [ 4.522797] [] worker_thread+0x121/0x480 [ 4.522806] [] ? process_one_work+0x3f0/0x3f0 [ 4.522815] [] kthread+0xc9/0xe0 [ 4.522824] [] ? kthread_create_on_node+0x170/0x170 [ 4.522834] [] ret_from_fork+0x7c/0xb0 [ 4.522843] [] ? kthread_create_on_node+0x170/0x170 [ 4.522849] Code: 41 54 49 89 f4 53 48 8d b7 c8 93 00 00 48 89 fb 48 8b 3f 4c 8d 6b 68 e8 f2 f1 ff ff 4c 89 ef e8 4a b7 43 e1 4c 89 e2 48 03 53 60 <44> 8b 32 48 89 c6 4c 89 ef e8 a5 b3 43 e1 8b 05 f7 0d 08 00 85 [ 4.523001] RIP [] gen4_read32+0x3d/0xc0 [i915] [ 4.523050] RSP [ 4.523055] CR2: ffffc900108c4000 [ 4.523064] ---[ end trace 08b04cb79531ee7e ]--- [ 4.523070] Kernel panic - not syncing: Fatal exception [ 4.523096] Dumping ftrace buffer: [ 4.523101] (ftrace buffer empty) [ 4.523109] Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffff9fffffff) [ 4.523118] Rebooting in 10 seconds.. --- drivers/gpu/drm/i915/i915_drv.c | 2 ++ drivers/gpu/drm/i915/i915_irq.c | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -496,6 +496,7 @@ bool i915_semaphore_is_enabled(struct dr void intel_hpd_cancel_work(struct drm_i915_private *dev_priv) { + trace_printk("CANCEL\n"); spin_lock_irq(&dev_priv->irq_lock); dev_priv->long_hpd_port_mask = 0; @@ -507,6 +508,7 @@ void intel_hpd_cancel_work(struct drm_i9 cancel_work_sync(&dev_priv->dig_port_work); cancel_work_sync(&dev_priv->hotplug_work); cancel_delayed_work_sync(&dev_priv->hotplug_reenable_work); + trace_printk("CANCEL DONE\n"); } static void intel_suspend_encoders(struct drm_i915_private *dev_priv) --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -1100,6 +1100,7 @@ static void i915_digport_work_func(struc int i, ret; u32 old_bits = 0; + trace_printk("WORK\n"); spin_lock_irqsave(&dev_priv->irq_lock, irqflags); long_port_mask = dev_priv->long_hpd_port_mask; dev_priv->long_hpd_port_mask = 0; @@ -1757,10 +1758,13 @@ static inline void intel_hpd_irq_handler spin_lock(&dev_priv->irq_lock); for (i = 1; i < HPD_NUM_PINS; i++) { - if (!(hpd[i] & hotplug_trigger)) + if (!(hpd[i] & hotplug_trigger)) { + trace_printk("PIN %d continue\n", i); continue; + } port = get_port_from_pin(i); + trace_printk("PORT %d PIN %d continue\n", port, i); if (port && dev_priv->hpd_irq_port[port]) { bool long_hpd; @@ -1784,6 +1788,7 @@ static inline void intel_hpd_irq_handler hotplug_trigger &= ~hpd[i]; } queue_dig = true; + trace_printk("PORT %d PIN %d sets queue_dig = true\n", port, i); } } @@ -1840,8 +1845,10 @@ static inline void intel_hpd_irq_handler * queue for otherwise the flush_work in the pageflip code will * deadlock. */ - if (queue_dig) + if (queue_dig) { + trace_printk("QUEUE\n"); queue_work(dev_priv->dp_wq, &dev_priv->dig_port_work); + } if (queue_hp) schedule_work(&dev_priv->hotplug_work); }