[Bugme-new] [Bug 10887] New: Kernel report fake device busy intermittently
bugme-daemon at bugzilla.kernel.org
bugme-daemon at bugzilla.kernel.org
Mon Jun 9 03:41:03 PDT 2008
http://bugzilla.kernel.org/show_bug.cgi?id=10887
Summary: Kernel report fake device busy intermittently
Product: Drivers
Version: 2.5
KernelVersion: 2.6.25
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Other
AssignedTo: drivers_other at kernel-bugs.osdl.org
ReportedBy: standby24x7 at gmail.com
Distribution: RHEL4 + vanilla kernel (2.6.25)
Hardware Environment:TEAC DV-W28ECW
Software Environment:
Problem Description: When I access /proc/ide/hda/identify,
following error is seen intermittently.
kernel: hda: task_in_intr: status=0xd0 { Busy }
kernel: hda: task_in_intr: error=0xd0LastFailedSense 0x0d
Steps to reproduce:
# cat /proc/ide/hda/identify
This symptom occured very rare.
(ex) 22 times in 60000 access.
Analyze:
After DVD drive return the identify data, the linux kernel
wait 1ms to see if the drive status back to "Ready".
But this TEAC DV-W28ECW drive, average retry count was 22 times.
But in some cases, it exceed the 1ms (100 times), but it just
takes a bit longer time... 6m sec.
drivers/ide/ide-taskfile.c
static u8 wait_drive_not_busy(ide_drive_t *drive)
{
int retries;
u8 stat;
/*
* Last sector was transfered, wait until drive is ready.
* This can take up to 10 usec, but we will wait max 1 ms.
*/
for (retries = 0; retries < 100; retries++) {
stat = ide_read_status(drive);
if (stat & BUSY_STAT)
udelay(10);
else
break;
}
if (stat & BUSY_STAT)
printk(KERN_ERR "%s: drive still BUSY!\n", drive->name);
return stat;
}
> * Last sector was transfered, wait until drive is ready.
> * This can take up to 10 usec, but we will wait max 1 ms.
This part is not documented within ATAPI specification.
So the Drive vender never take care of the retry.
In order to support some corner cases drive, I expect retry count
in the loop need to be adjustable by /proc or /sys.
Then just set the same value, 100 as a default.
--
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the Bugme-new
mailing list