Jeff Garzik wrote: > [...] > Does the PIO code deviate from the ATA/ATAPI-[4567] host state machine > somehow?
That I can't say (the ata/atapi docs make me want to put my head under the wheel of a bus), but: on SMP machines the implementation would turn into busy-waiting for every sector; I have my suspicions about the ata_busy_wait() calls in ata_pio_block(); I also looked at implementing ATA_PROT_PIO_MULT with interrupt support, but then ran out of time on the project - what's there doesn't (didn't) use interrupts. > Or is it just that newer SATA-emulating-PATA chips have trouble with it? Could be, I for sure saw arbitration/starvation issues that resulted in geological-grade delays getting status at the end of some PIO transfers. The result was timeout errors under heavy load. I believe that the SMP-machine-becomes-busy-wait- monster bug probably caused the majority of these errors (I could generate them after a few minutes testing), because I had 4 (fast-ish) cores conspiring to beat the crap out of 1 register on a PCI card. -- [EMAIL PROTECTED] Andy Warner Voice: (612) 801-8549 Fax: (208) 575-5634 - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
