On 03/09/07, Tejun Heo <htejun@xxxxxxxxx> wrote: > > [ 4.504000] ata1.00: ATA-0: SMI MODEL, 20070709, max MWDMA2 > > [ 4.504000] ata1.00: 7928928 sectors, multi 0: LBA > > [ 4.504000] ata1.00: applying bridge limits > > [ 4.520000] ata1.00: configured for MWDMA2 > [--snip--] > > [ 1301.836000] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen > > [ 1301.836000] ata1.00: cmd ca/00:80:50:55:1f/00:00:00:00:00/e0 tag 0 > > cdb 0x0 data 65536 out > > [ 1301.836000] res 40/00:00:00:00:00/00:00:00:00:00/e0 Emask > > 0x4 (timeout) > > ** End *** > > > > I can see that it falls back from MWDMA2 to MWDMA1, but it doesn't > > fall back again to Single Word DMA? > > libata doesn't use SWDMA. SWDMA is pointless to support. It buys > almost nothing over PIO modes. The condition to fall back to PIO is > very strict to prevent premature fall back. I think it needs some > relaxation and special handling for cases where DMA transfer has never > succeeded after configuration so that it can fall back more easily. Sorry, by SWDMA I meant PIO4 - and as the log shows - it does not seem to drop from MWDMA1 to the PIO modes - even after about 15 minutes. > > What is very strange also is that I can mount the NTFS drive just > > fine, and copy 70Mb of files off it (pretty nippily, I might add =D) - > > without any timeouts, but as soon as I tried to do something > > "lowlevel" to the disk (i.e. as you may have spotted, I used gparted > > to try and resize the NTFS partition, so I could try and run mkfs.ext3 > > again - which was what caused the timeouts when I originally tried to > > install. > > Hmmm.. it could be that the timeouts occur only on write or are > dependent on transfer size. You should be able to find out what causes > the timeouts by playing with dd with 'direct' added to iflag and oflag. I'll look into that when I get home from work. > > I can confirm that my chipset does indeed support UDMA, here is the > > hdparm -I report on my original disk: > > Yeah, it's really difficult to come by a controller which doesn't > support UDMA these days. So from that, we can determine that the CF card doesn't support UDMA (or if you're being optimistic like I am - it doesn't report it, or it doesn't report it in a way which the controller recognises) > > In regards to Windows performance: I have been using the tool HDTune > > to see which mode the device is in - and it reports Multiword DMA 2. > > Also, the benchmark facility with HDTune reveals that the burst speed > > of the drive is 2MB - consistent with the hdparm -t speed when > > ide-generic is used. > > > > Strangely enough, I've gone into Device Manager, and the transfer mode > > Windows claims it is using is PIO, which seems to be contradictory to > > what HDTune is telling me (and leads me to ask another question, I've > > included in my reply to Alan) I've also tried to various registry > > settings to try and force the device into UDMA or PIO, to no success - > > as far as I can tell MWDMA may well be the lowest speed Windows XP > > supports operating devices at? > > WXP uses PIO modes just fine. I dunno how HDTune determines the current > transfer mode but if it uses IDENTIFY to query the device setting, it's > possible that the device reports MWDMA while the OS drives it in PIO > mode. The best way to tell is watching cpu usage while transferring > data from the device. If you're using mwdma, you won't see too high cpu > usage; otherwise, you'll notice high spikes during data transfer. Can > you please try that and report? Like I said before, the CF card is operating extremely slowly: HDTune shows that I'm getting 2MB/s burst which often drops to about 0.1MB/s - and the qualitative observation is the same as what I get when I'm using ide-generic. My X41 has a 1.5Ghz P4M, and a 0.1MB/s hit (if it is using PIO) is hardly going to make a dent - I'm fairly sure that it is spending most of its time waiting for IO, but I shall take a deeper look tonight. I believe the transfer mode is set in the registry - though I've not been able to find any documentation that explains their values. I've tried guessing and setting some lower values/bits, but not had any success. What's confusing me is that my 40MB/s card only supporting MWDMA2 - which offers only a max transfer rate of 16.7MB/s - how have other people achieved 30MB/s then!?! (I'm referring to an ICH8 user who claims he has here, with a very similar CF card: http://www.opensubscriber.com/message/linux-ide@xxxxxxxxxxxxxxx/6818048.html Also, does libATA support the PIO5 and PIO6 modes, which according to Wikipedia are not part of the ATA standard, but the CF 2.0 standard? (source: http://en.wikipedia.org/wiki/Programmed_input/output ) Many thanks, Eddie - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html