Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932095AbVKEQCR (ORCPT ); Sat, 5 Nov 2005 11:02:17 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932093AbVKEQCR (ORCPT ); Sat, 5 Nov 2005 11:02:17 -0500 Received: from zproxy.gmail.com ([64.233.162.194]:36333 "EHLO zproxy.gmail.com") by vger.kernel.org with ESMTP id S932095AbVKEQCQ convert rfc822-to-8bit (ORCPT ); Sat, 5 Nov 2005 11:02:16 -0500 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:sender:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=X26HB8QCDwvk9FKE61gLBlJNUZXSb8o9afH/XC/nOJ2mf11APEkgZgNtkdaHW6D0RIWpm8B+7Lh8WecyS+SIrjbSQysncLQtJ1GcJeQG3V1rkT5giodhi07xGLn3E3oOABqqOfurnXN5/Lp/DB6tsWQ2RodWwuTZpM7JRYLp1Gk= Message-ID: Date: Sat, 5 Nov 2005 17:02:13 +0100 From: Ragnar Hojland Espinosa To: linux-kernel@vger.kernel.org Subject: How to reproduce USB storage device resets w/ 2.6.14 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 18600 Lines: 412 Having undergone painful data loss experience originated from the combination of said resets and a "hey-lets-trust-the-GUI-for-moving-files-around-it-cant-be-that-bad", I got motivated enough to toy around and see if I could figure how to reproduce the USB device resets I've been noticing. usb 5-2: reset high speed USB device using ehci_hcd and address 3 ehci_hcd 0000:00:10.4: port 2 high speed ehci_hcd 0000:00:10.4: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT ehci_hcd 0000:00:10.4: port 2 high speed ehci_hcd 0000:00:10.4: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT How make the usb device start resetting? 1.Start the cp of big files in one terminal from the USB drive to an internal hard disk. 2. Go to another terminal, start vmstat 1 keeping eyes on bi/bo 3. Hold down the shift key, do not release 4. After a short bit... blam. Now, I can't be absolutely sure its because of the keypress, interrupts dancing around, or a late halloween trick, but if the box is sort of idle you don't get the resets, while if it's keypressed you do in a very short amount of time. I tried booting with noacpi noapic, didn't have any effect. Also, more evil events: Nov 5 03:06:13 localhost kernel: [ 9478.317635] usb 5-2: reset high speed USB d evice using ehci_hcd and address 3 Nov 5 03:06:21 localhost kernel: [ 9485.996484] scsi: Device offlined - not rea dy after error recovery: host 2 channel 0 id 0 lun 0 Nov 5 03:06:21 localhost kernel: [ 9485.996502] SCSI error : <2 0 0 0> return c ode = 0x70000 Nov 5 03:06:21 localhost kernel: [ 9485.996507] end_request: I/O error, dev sda , sector 286424623 Nov 5 03:06:21 localhost kernel: [ 9486.004256] lost page write due to I/O erro r on sda1 Nov 5 03:06:52 localhost kernel: [ 9517.584142] lost page write due to I/O erro r on sda1 ... The device in question: T: Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 8 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.14 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:10.4 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms T: Bus=05 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=07ff ProdID=00ff Rev= 0.00 S: Manufacturer=NEC Electronics S: Product=uPD720133 S: SerialNumber=123456789012 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.14 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:10.3 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.14 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:10.2 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.14 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:10.1 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 93/900 us (10%), #Int= 1, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.14 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:10.0 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=1.5 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=046d ProdID=c00e Rev=11.10 S: Manufacturer=Logitech S: Product=USB-PS/2 Optical Mouse C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 98mA I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=10ms The NEC thing is an external USB enclosure holding: Nov 5 03:08:31 localhost kernel: [ 9616.153683] USB Mass Storage support regist ered. Nov 5 03:08:36 localhost kernel: [ 9621.143293] Vendor: SEAGATE Model: ST33 00831A Rev: 3.03 Nov 5 03:08:36 localhost kernel: [ 9621.143304] Type: Direct-Access An lspci for completeness: 0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8385 [K8T800 AGP] Host Bridge (rev 01) Subsystem: Asustek Computer, Inc.: Unknown device 80a3 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- Capabilities: [c0] #08 [0060] Capabilities: [68] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] #08 [8001] 0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI bridge [K8T800 South] (prog-if 00 [Normal dec ode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- Reset- FastB2B- Capabilities: [80] Power Management version 2 Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 0000:00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80) Subsystem: Asustek Computer, Inc. A7V600 motherboard Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 0000:01:00.1 Display controller: ATI Technologies Inc R300 AD [Radeon 9500 Pro] (Secondary) Subsystem: ATI Technologies Inc: Unknown device 0003 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR-