All times are UTC-06:00

Post new topic  Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Poor ide performances
PostPosted: Wed Oct 29, 2008 9:07 am 

Joined: Mon Mar 31, 2008 11:15 am
Posts: 17
Location: Bari, Italy
Hi all,

i noticed that Efika's ide controller has poor performances.

I am using opensuse 11.0 with a CF card as mass storage and a simple dd if=/dev/zero of=/dev/sda2 gives 900 kB/s as speed. Recompiling the kernel with a cross toolchain tuned for 603e processors gives more or less twice the transfer speed, but still very far from the 20 MB/s i obtain with the same CF and a USB reader my Desktop PC.

Is there some room for performance improvement?



PostPosted: Wed Oct 29, 2008 9:36 am 
Site Admin

Joined: Fri Sep 24, 2004 1:39 am
Posts: 1589
Location: Austin, TX
Is there some room for performance improvement?
Yes, and No.

There are some hardware bugs in the ATA controller pertaining to the ATA FIFO alarm, and the ATA state machine, in the MPC5200B which make UDMA disk access sort of dangerous.

However there is a Linux patch written by Tim Yamin that enables it anyway; and sets some egregious BestComm ATA initiator priority to do it.. he and a few others report no problems, but I guarantee you will not be able to experience clear audio output while disk activity is happening :)

Also however there are mails like this one which do not inspire confidence!

I personally approve the patch as it will show people there really is a problem :D

There is a way to get better performance; instead of using UDMA, use disk PIO4 mode, but use the BestComm engine to transfer data to and from the disk and FIFO under CPU control. This does not mean you will ever see 20MB/s (or anything near 33MB/s) but 8-10MB/s with the CPU not constantly engaged in marshalling disk activity is a good performance compromise.

Nobody has stepped up to the plate to port the DMA-assisted PIO operation to libata, so the performance will still suck until it's done. Ideally you'd implement PIO-DMA as a real PIO mode (therefore you could have Tim Yamin's patch installed and enabled, but use libata.nodma=1 to get DMA-assisted PIO)

DMA-assisted PIO is not some magic thing for the MPC5200B either, Intel AHCI and Silicon Image controllers implement something similar to offload certain disk activity (it's not possible to send ATA commands using UDMA, for example, so this can still be offloaded by passing the command block to the system DMA unit and having it shunt to the ATA controller, and the functionality exists basically so that in the event of nasty UDMA errors on a disk, reliable yet still reasonable operation can still be maintained on high performance servers (for instance, rebuilding a RAID array) using these controllers)

Matt Sealey

Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 2 posts ] 

All times are UTC-06:00

Who is online

Users browsing this forum: No registered users and 1 guest

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron Copyright © 2004-2012, Genesi USA, Inc. The Power Architecture and wordmarks and the Power and logos and related marks are trademarks and service marks licensed by
All other names and trademarks used are property of their respective owners. Privacy Policy
Powered by phpBB® Forum Software © phpBB Group