[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#419175: linux-image-2.6.18-4-686: USB HD gives I/O errors while spinning up



Subject: linux-image-2.6.18-4-686: USB HD gives I/O errors while spinning up
Package: linux-image-2.6.18-4-686
Version: 2.6.18.dfsg.1-12
Severity: important

I recently purchased a Seagate FreeAgent hard drive. Seagate sets the drive
to spin down after about 15 minutes if there is no activity. There is no way
to change this setting on the drive.

The drive works well until it spins down. It looks like the first I/O
sent to
the drive after it spins down fails. Here are the relevant lines from the
initialization:

  SCSI subsystem initialized
  Initializing USB Mass Storage driver...
  usb 4-3: new high speed USB device using ehci_hcd and address 4
  usb 4-3: configuration #1 chosen from 1 choice
  scsi0 : SCSI emulation for USB Mass Storage devices
  usb-storage: device found at 2
  usb-storage: waiting for device to settle before scanning
  scsi1 : SCSI emulation for USB Mass Storage devices
  usbcore: registered new driver usb-storage
  USB Mass Storage support registered.
  usb-storage: device found at 4
  usb-storage: waiting for device to settle before scanning
  hdc: SAMSUNG CD-ROM SC-148, ATAPI CD/DVD-ROM drive
  usb 1-2: new full speed USB device using uhci_hcd and address 3
  usb 1-2: configuration #1 chosen from 1 choice
  hub 1-2:1.0: USB hub found
  hub 1-2:1.0: 4 ports detected
  SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB)
  sda: Write Protect is off
  sda: Mode Sense: 1c 00 00 00
  sda: assuming drive cache: write through
  SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB)
  sda: Write Protect is off
  sda: Mode Sense: 1c 00 00 00
  sda: assuming drive cache: write through
   sda: sda1
  sd 0:0:0:0: Attached scsi disk sda

After I mount a filesystem, wait 16 minutes, and then attempt to access it:

  EXT3 FS on sda1, internal journal
  EXT3-fs: mounted filesystem with ordered data mode.
  sd 0:0:0:0: Device not ready: <6>: Current: sense key: Not Ready
      Additional sense: Logical unit not ready, initializing command
required
  end_request: I/O error, dev sda, sector 623378511
  EXT3-fs error (device sda1): ext3_get_inode_loc: unable to read inode
block - inode=38961153, block=77922306
  Aborting journal on device sda1.
  sd 0:0:0:0: Device not ready: <6>: Current: sense key: Not Ready
      Additional sense: Logical unit not ready, initializing command
required
  end_request: I/O error, dev sda, sector 4375
  printk: 119 messages suppressed.
  Buffer I/O error on device sda1, logical block 539
  lost page write due to I/O error on sda1
  sd 0:0:0:0: Device not ready: <6>: Current: sense key: Not Ready
      Additional sense: Logical unit not ready, initializing command
required
  end_request: I/O error, dev sda, sector 63
  Buffer I/O error on device sda1, logical block 0
  lost page write due to I/O error on sda1

I spent some time looking through the kernel source, and I found an
interesting
note in scsi_eh_stu:

  If commands are failing due to not ready, initializing command required,
  try revalidating the device, which will end up sending a start unit.

I wasn't able to follow the usb-storage code well enough to know if this
command is being issued. I do know that the drive starts to work about 7
seconds after all of these error messages come out. I assume that this is
the amount of time that it needs to spin up.

I see similar behavior on older kernels (including the current version of
2.6.8 that shipped with Sarge). I see a long pause when the drive spins up
under Windows, but I don't get I/O errors from the system.

I'd be willing to investigate further, but it would help to know a bit more
about what error handling routine is running. I have done some kernel
programming in the past, but the USB code is a bit new.

Thanks for your help,

Greg

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-4-686
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages linux-image-2.6.18-4-686 depends on:
ii  coreutils                     5.97-5.3   The GNU core utilities
ii  debconf [debconf-2.0]         1.5.11     Debian configuration
management sy
ii  initramfs-tools [linux-initra 0.85g      tools for generating an
initramfs
ii  module-init-tools             3.3-pre4-2 tools for managing Linux
kernel mo
ii  yaird [linux-initramfs-tool]  0.0.12-18  Yet Another mkInitRD

Versions of packages linux-image-2.6.18-4-686 recommends:
ii  libc6-i686                  2.3.6.ds1-13 GNU C Library: Shared
libraries [i

-- debconf information:
  linux-image-2.6.18-4-686/preinst/failed-to-move-modules-2.6.18-4-686:
* linux-image-2.6.18-4-686/preinst/lilo-initrd-2.6.18-4-686: false
  linux-image-2.6.18-4-686/preinst/elilo-initrd-2.6.18-4-686: true
  linux-image-2.6.18-4-686/preinst/overwriting-modules-2.6.18-4-686: true
* linux-image-2.6.18-4-686/prerm/removing-running-kernel-2.6.18-4-686: true
 
linux-image-2.6.18-4-686/prerm/would-invalidate-boot-loader-2.6.18-4-686:
true
  linux-image-2.6.18-4-686/postinst/bootloader-test-error-2.6.18-4-686:
  linux-image-2.6.18-4-686/preinst/abort-overwrite-2.6.18-4-686:
  linux-image-2.6.18-4-686/postinst/old-system-map-link-2.6.18-4-686: true
  linux-image-2.6.18-4-686/postinst/depmod-error-2.6.18-4-686: false
  linux-image-2.6.18-4-686/preinst/abort-install-2.6.18-4-686:
  linux-image-2.6.18-4-686/postinst/depmod-error-initrd-2.6.18-4-686: false
  linux-image-2.6.18-4-686/postinst/old-initrd-link-2.6.18-4-686: true
  linux-image-2.6.18-4-686/preinst/bootloader-initrd-2.6.18-4-686: true
  linux-image-2.6.18-4-686/preinst/already-running-this-2.6.18-4-686:
  linux-image-2.6.18-4-686/postinst/old-dir-initrd-link-2.6.18-4-686: true
  linux-image-2.6.18-4-686/postinst/kimage-is-a-directory:
  shared/kernel-image/really-run-bootloader: true
  linux-image-2.6.18-4-686/preinst/lilo-has-ramdisk:
  linux-image-2.6.18-4-686/postinst/bootloader-error-2.6.18-4-686:
  linux-image-2.6.18-4-686/preinst/initrd-2.6.18-4-686:
* linux-image-2.6.18-4-686/postinst/create-kimage-link-2.6.18-4-686: true




Reply to: