Quote:
Hi,
now I am also running the kernel vom efika.de
in a Debian. 2.6.19-rc6-g9468d500-dirty ATM.
HDparm reports about 4MB/s, so DMA is non-functional?
hdparm -d /dev/sda does not give me the usual answer
about DMA.
Will build an own 2.6.19 and report if that works.
Regards,
Peter
Note that due to the way the MPC5200B handles ATA it's not entirely safe to do DMA in the same way you get with UDMA drivers on the PC or other chipset solutions; the DMA mode we recommend is the DMA-PIO operation where PIO operations are assisted by the DMA engine for register transfers and other data. It's DMA between the host controller and the rest of the system, and not between the drive and some buffer managed by the host controller.
4MB/s is probably a good rate to have; remember at 4200rpm and fairly average data densities laptop drives do NOT have miraculous 70MB/s sustained transfer rates - 16-25MB/s is about normal at the high end. Remember you have an SoC ATA controller (designed for more embedded CompactFlash or MTD discs), and limited performance available on the processor side.
There is a lot that could be done on the ATA driver for sure, a lot of it may be down to simply inefficient code (MPC5200 support was originally for Linux 2.4.x and has been ported across with little special optimization for any new driver API tweaks). The SCSI layer through libata also adds a small overhead (larger than anyone might expect, but not noticable on very well coded drivers).
If the driver loaded, it IS doing DMA of some kind. The purpose of DMA is not to increase performance, but to reduce CPU load/interference on transfers.