lkml.org 
[lkml]   [2006]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: LibPATA code issues / 2.6.15.4


On Fri, 7 Jul 2006, Jeff Garzik wrote:

> Justin Piszcz wrote:
>>
>>
>> On Fri, 7 Jul 2006, Justin Piszcz wrote:
>>
>>>
>>>
>>> On Fri, 7 Jul 2006, Mark Lord wrote:
>>>
>>>> Justin Piszcz wrote:
>>>>>
>>>>> had to change
>>>>>
>>>>> KERN_WARN -> KERN_WARNING
>>>>>
>>>>> then more errors
>>>>
>>>> Eh? After fixing the KERN_WARN -> KERN_WARNING part,
>>>> the patch compiles / links cleanly here on 2.6.17.
>>>> (fixed copy below). Still untested, though.
>>>>
>>>>> do you know who wrote the original patch?
>>>>
>>>> I did.
>>>>
>>>> Cheers
>>>>
>>>> --- linux/drivers/scsi/libata-scsi.c.orig 2006-06-19
>>>> 10:37:03.000000000 -0400
>>>> +++ linux/drivers/scsi/libata-scsi.c 2006-07-07 09:06:57.000000000
>>>> -0400
>>>> @@ -542,6 +542,7 @@
>>>> struct ata_taskfile *tf = &qc->tf;
>>>> unsigned char *sb = cmd->sense_buffer;
>>>> unsigned char *desc = sb + 8;
>>>> + unsigned char ata_op = tf->command;
>>>>
>>>> memset(sb, 0, SCSI_SENSE_BUFFERSIZE);
>>>>
>>>> @@ -558,6 +559,7 @@
>>>> * onto sense key, asc & ascq.
>>>> */
>>>> if (tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) {
>>>> + printk(KERN_WARNING "ata_gen_ata_desc_sense: failed
>>>> ata_op=0x%02x\n", ata_op);
>>>> ata_to_sense_error(qc->ap->id, tf->command, tf->feature,
>>>> &sb[1], &sb[2], &sb[3]);
>>>> sb[1] &= 0x0f;
>>>>
>>>
>>> Mark!! It did it again, here you go:
>>>
>>> ==> /p34/var/log/messages <==
>>> Jul 7 10:26:06 p34 kernel: [4296869.461000] ata4: status=0x53 {
>>> DriveReady SeekComplete Index Error }
>>> Jul 7 10:26:06 p34 kernel: [4296869.461000] ata4: error=0x04 {
>>> DriveStatusError }
>>> ==> /p34/var/log/kern.log <==
>>> Jul 7 10:26:06 p34 kernel: [4296869.461000] ata4: translated ATA stat/err
>>> 0x53/04 to SCSI SK/ASC/ASCQ 0xb/00/00
>>> Jul 7 10:26:06 p34 kernel: [4296869.461000] ata4: status=0x53 {
>>> DriveReady SeekComplete Index Error }
>>> Jul 7 10:26:06 p34 kernel: [4296869.461000] ata4: error=0x04 {
>>> DriveStatusError }
>>>
>>> Does this help?
>>>
>>> Can we eliminate the cause of these errors now?
>>>
>>>
>>
>> Jeff or Alan,
>>
>> Does that ATA translation help in determining what *bad* commands are being
>> sent to the drive?
>
> No, it needs the patch that Mark has been posting...
>
> Jeff
>
>
>

Jeff, the patch is applied and box booted the new kernel and I reproduced
the error messages, THAT is what is produced with the patch.


Without the patch:

Jun 18 07:09:53 p34 kernel: [4297678.777000] ata3: status=0x51 {
DriveReady SeekComplete Error }
Jun 18 07:09:53 p34 kernel: [4297678.777000] ata3: error=0x04 {
DriveStatusError }
Jun 18 07:20:08 p34 -- MARK --
Jun 18 07:27:31 p34 kernel: [4298736.905000] ata3: status=0x51 {
DriveReady SeekComplete Error }
Jun 18 07:27:31 p34 kernel: [4298736.905000] ata3: error=0x04 {
DriveStatusError }

With the patch:

Jul 7 10:26:06 p34 kernel: [4296869.461000] ata4: translated ATA stat/err
0x53/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Jul 7 10:26:06 p34 kernel: [4296869.461000] ata4: status=0x53 {
DriveReady SeekComplete Index Error }
Jul 7 10:26:06 p34 kernel: [4296869.461000] ata4: error=0x04 {
DriveStatusError }
Jul 7 10:49:29 p34 kernel: [4298273.178000] ata4: translated ATA stat/err
0x51/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Jul 7 10:49:29 p34 kernel: [4298273.178000] ata4: status=0x51 {
DriveReady SeekComplete Error }
Jul 7 10:49:29 p34 kernel: [4298273.178000] ata4: error=0x04 {
DriveStatusError }
Jul 7 11:43:02 p34 kernel: [4301488.359000] ata4: translated ATA stat/err
0x51/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Jul 7 11:43:02 p34 kernel: [4301488.359000] ata4: status=0x51 {
DriveReady SeekComplete Error }
Jul 7 11:43:02 p34 kernel: [4301488.359000] ata4: error=0x04 {
DriveStatusError }
Jul 7 12:35:27 p34 kernel: [4304634.600000] ata4: translated ATA stat/err
0x51/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Jul 7 12:35:27 p34 kernel: [4304634.600000] ata4: status=0x51 {
DriveReady SeekComplete Error }
Jul 7 12:35:27 p34 kernel: [4304634.600000] ata4: error=0x04 {
DriveStatusError }
Jul 7 12:44:14 p34 kernel: [4305162.220000] ata4: no sense translation
for status: 0x51
Jul 7 12:44:14 p34 kernel: [4305162.220000] ata4: translated ATA stat/err
0x51/00 to SCSI SK/ASC/ASCQ 0xb/00/00
Jul 7 12:44:14 p34 kernel: [4305162.220000] ata4: status=0x51 {
DriveReady SeekComplete Error }
Jul 7 13:03:22 p34 kernel: [4306309.782000] ata4: translated ATA stat/err
0x51/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Jul 7 13:03:22 p34 kernel: [4306309.782000] ata4: status=0x51 {
DriveReady SeekComplete Error }
Jul 7 13:03:22 p34 kernel: [4306309.782000] ata4: error=0x04 {
DriveStatusError }
Jul 7 13:05:12 p34 kernel: [4306419.891000] ata4: no sense translation
for status: 0x51
Jul 7 13:05:12 p34 kernel: [4306419.891000] ata4: translated ATA stat/err
0x51/00 to SCSI SK/ASC/ASCQ 0xb/00/00
Jul 7 13:05:12 p34 kernel: [4306419.891000] ata4: status=0x51 {
DriveReady SeekComplete Error }
Jul 7 13:32:20 p34 kernel: [4308048.717000] ata4: translated ATA stat/err
0x51/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Jul 7 13:32:20 p34 kernel: [4308048.717000] ata4: status=0x51 {
DriveReady SeekComplete Error }
Jul 7 13:32:20 p34 kernel: [4308048.717000] ata4: error=0x04 {
DriveStatusError }

When I had been running it earlier with 2.6.15.x:

Mar 1 13:31:10 p34 kernel: [4295292.736000] +++PATCH: Original kernel
error:
Mar 1 13:31:10 p34 kernel: [4295292.736000] ata3: translated op=0x85 ATA
stat/err 0x51/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Mar 1 13:31:10 p34 kernel: [4295292.736000] +++PATCH: Mark Lord's
extended verbosity patch:
Mar 1 13:31:10 p34 kernel: [4295292.736000] ata3: translated op=0x85
cmd=0xb0 ATA stat/err 0x51/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Mar 1 13:31:10 p34 kernel: [4295292.736000] ata3: status=0x51 {
DriveReady SeekComplete Error }
Mar 1 13:31:10 p34 kernel: [4295292.736000] ata3: error=0x04 {
DriveStatusError }
Mar 1 13:31:10 p34 kernel: [4295292.736000] +++PATCH: Original kernel
error:
Mar 1 13:31:10 p34 kernel: [4295292.736000] ata3: translated op=0x85 ATA
stat/err 0x51/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Mar 1 13:31:10 p34 kernel: [4295292.736000] +++PATCH: Mark Lord's
extended verbosity patch:
Mar 1 13:31:10 p34 kernel: [4295292.736000] ata3: translated op=0x85
cmd=0xb0 ATA stat/err 0x51/04 to SCSI SK/ASC/ASCQ 0xb/00/00
Mar 1 13:31:10 p34 kernel: [4295292.736000] ata3: status=0x51 {
DriveReady SeekComplete Error }
Mar 1 13:31:10 p34 kernel: [4295292.736000] ata3: error=0x04 {
DriveStatusError }

Perhaps the patch is not printing out the correct error message?

This shows that the source file was patched in libata-scsi.c.

/*
* Use ata_to_sense_error() to map status register bits
* onto sense key, asc & ascq.
*/
if (tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) {
printk(KERN_WARNING "ata_gen_ata_desc_sense: failed
ata_op=0x%02x\n", ata_op);
ata_to_sense_error(qc->ap->id, tf->command, tf->feature,
&sb[1], &sb[2], &sb[3]);
sb[1] &= 0x0f;
}


This shows the kernel version.
$ cat /usr/src/linux/.version
4

This shows I am running the patched version.
$ uname -a
Linux p34.internal.lan 2.6.17.3 #4 SMP PREEMPT Fri Jul 7 09:47:53 EDT 2006
i686 GNU/Linux
$

Maybe something is blocking the opcode output from showing correctly?

Justin.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-07-07 21:31    [W:0.282 / U:0.140 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site