Re: LibPATA code issues / 2.6.17.3 (What is the next step?)

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

 



Mark Lord wrote:
Justin Piszcz wrote:
They are Western Digital 400* drives.

[4294678.049000]   Vendor: ATA       Model: WDC WD4000KD-00N  Rev: 01.0
[4294678.050000]   Vendor: ATA       Model: WDC WD4000KD-00N  Rev: 01.0

On a SiL controller, it also happens when they are on a promise controller too.

On Fri, 14 Jul 2006, Mark Lord wrote:

Justin Piszcz wrote:

opcode=0x35 & opcode=0xca

Those are non-DMA WRITE opcodes. Using PIO for I/O is pretty rare these days,
so I'm betting that this is not a hard disk device -- compactflash?

Okay.  So why are we issuing PIO WRITE commands to drives that
obviously should only be sent DMA commands by libata?

Perhaps that's the bug.

Oh wait.. I remember this.. No, those are DMA commands,
despite the misleading libata name for them.  We went through
this before last spring..

Okay.  So I wonder what's really going on.
The next step would be to instrument the interrupt handler,
so that when it sees bad-status, it dumps out the stat/err values
right then and there, before anything else can muck with them.

It might also be good to have it dump out the controller engine's
DMA status/err values, assuming the controller has registers for those.

Then we should get a better picture of what's going on.
Assuming the drives aren't lying to us (a perfectly good assumption here),
then the controller must be aborting the transfer unexpectedly.

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux