From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751517Ab0FGEet (ORCPT ); Mon, 7 Jun 2010 00:34:49 -0400 Received: from mail-iw0-f174.google.com ([209.85.214.174]:56210 "EHLO mail-iw0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750717Ab0FGEer convert rfc822-to-8bit (ORCPT ); Mon, 7 Jun 2010 00:34:47 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=V7AP3Xb+eKQBNkVLd0h3aM9biUL6ETA6qcncWd7RZImIJo0zA+8KpG0DL1X7TB+Pch eejuXlw13JWZ+K3C4QSqdqr2dT9dvZGizNc1S6eWUqcmzgNNTejyFB1SAuELxWlds2j0 ZnwWJ9Rb9/vm1hkmWIHe1dcoXWNHrCymCWCSw= MIME-Version: 1.0 In-Reply-To: References: <20100603020006.GB19123@srcf.ucam.org> <4C08760B.8050002@gmail.com> Date: Sun, 6 Jun 2010 22:34:45 -0600 Message-ID: Subject: Re: Hang during boot, bisected to commit 96d60303fd From: Robert Hancock To: Marc Dionne Cc: Matthew Garrett , Linux Kernel Mailing List , linux-ide@vger.kernel.org, garzik@redhat.com, Tejun Heo Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 4, 2010 at 8:01 PM, Marc Dionne wrote: > On Fri, Jun 4, 2010 at 9:37 PM, Robert Hancock wrote: >> Is that the right dmesg? I didn't see where the extra output was. It >> might be useful to put a WARN_ON(1); inside ahci_start_engine to see >> the two code paths where it's being called.. > > The first series of calls to ahci_start_engine have a stack trace that > looks like this: > > Call Trace: >  [] warn_slowpath_common+0x85/0x9d >  [] warn_slowpath_null+0x1a/0x1c >  [] ahci_start_engine+0x92/0xa4 >  [] ahci_start_port+0x7b/0x16c >  [] ahci_port_resume+0x52/0x73 >  [] ahci_port_start+0x14e/0x164 >  [] ata_host_start+0xdf/0x184 >  [] ? ahci_interrupt+0x0/0x5f3 >  [] ata_host_activate+0x2a/0xdc >  [] ahci_init_one+0x9dd/0x9fe >  [] ? __sysfs_add_one+0x38/0x9a >  [] ? kobject_get+0x1a/0x22 >  [] local_pci_probe+0x17/0x1b >  [] pci_device_probe+0xca/0xfa >  [] ? driver_sysfs_add+0x4c/0x71 >  [] driver_probe_device+0xac/0x13b >  [] __driver_attach+0x5d/0x81 >  [] ? __driver_attach+0x0/0x81 >  [] bus_for_each_dev+0x53/0x88 >  [] driver_attach+0x1e/0x20 >  [] bus_add_driver+0xb6/0x203 >  [] driver_register+0x9e/0x10f >  [] __pci_register_driver+0x58/0xc8 >  [] ? ahci_init+0x0/0x1b >  [] ahci_init+0x19/0x1b >  [] do_one_initcall+0x5e/0x159 >  [] kernel_init+0x183/0x211 >  [] kernel_thread_helper+0x4/0x10 >  [] ? kernel_init+0x0/0x211 >  [] ? kernel_thread_helper+0x0/0x10 > > The later calls: > > Call Trace: >  [] warn_slowpath_common+0x85/0x9d >  [] warn_slowpath_null+0x1a/0x1c >  [] ahci_start_engine+0x92/0xa4 >  [] ahci_hardreset+0xc6/0x124 >  [] ? ahci_hardreset+0x0/0x124 >  [] ? ata_std_prereset+0x0/0xb7 >  [] ata_do_reset+0x59/0x62 >  [] ata_eh_reset+0x512/0xc99 >  [] ? ahci_postreset+0x0/0x5d >  [] ? ahci_hardreset+0x0/0x124 >  [] ? ahci_softreset+0x0/0x44 >  [] ? ahci_hardreset+0x0/0x124 >  [] ? ata_eh_schedule_probe+0xc5/0xf3 >  [] ata_eh_recover+0x2d8/0xd6d >  [] ? ahci_postreset+0x0/0x5d >  [] ? ahci_hardreset+0x0/0x124 >  [] ? ahci_softreset+0x0/0x44 >  [] ? ata_std_prereset+0x0/0xb7 >  [] sata_pmp_error_handler+0xd3/0xa0a >  [] ? dequeue_entity+0x4a/0x183 >  [] ? __cancel_work_timer+0xad/0x193 >  [] ? lock_timer_base+0x2c/0x52 >  [] ? try_to_del_timer_sync+0x7b/0x89 >  [] ahci_error_handler+0x2c/0x30 >  [] ata_scsi_error+0x33d/0x697 >  [] scsi_error_handler+0xc2/0x3c5 >  [] ? scsi_error_handler+0x0/0x3c5 >  [] kthread+0x7f/0x87 >  [] kernel_thread_helper+0x4/0x10 >  [] ? kthread+0x0/0x87 >  [] ? kernel_thread_helper+0x0/0x10 I'm thinking that the hardreset and device classification makes more sense as a place to do this anyways, since that's the point where we really know if there's a device connected or not.. Tejun, any thoughts?