RFC: PCI SD host controller driver & mmc/mmcsd modules improvements

Henry Hu henry.hu.sh at gmail.com
Sun Oct 12 13:46:16 UTC 2008


Just as you said, increasing bs leads to much better performance.

> sudo dd if=/dev/mmcsd0 of=/dev/null bs=64k
^C279+0 records in
279+0 records out
18284544 bytes transferred in 2.315142 secs (7897807 bytes/sec)
> sudo dd if=/dev/mmcsd0 of=/dev/null bs=64k
^C465+0 records in
465+0 records out
30474240 bytes transferred in 3.892817 secs (7828326 bytes/sec)
> sudo dd if=/dev/mmcsd0 of=/dev/null bs=64k
^C559+0 records in
559+0 records out
36634624 bytes transferred in 4.967053 secs (7375525 bytes/sec)
> sudo dd if=/dev/mmcsd0 of=/dev/null bs=128k
^C146+0 records in
146+0 records out
19136512 bytes transferred in 2.332850 secs (8203062 bytes/sec)
> sudo dd if=/dev/mmcsd0 of=/dev/null bs=1024k
^C28+0 records in
28+0 records out
29360128 bytes transferred in 3.765376 secs (7797396 bytes/sec)
> sudo dd if=/dev/mmcsd0 of=/dev/null bs=512k
^C75+0 records in
75+0 records out
39321600 bytes transferred in 4.945109 secs (7951615 bytes/sec)
> sudo dd if=/dev/mmcsd0 of=/dev/null bs=256k
^C179+0 records in
179+0 records out
46923776 bytes transferred in 5.673761 secs (8270313 bytes/sec)
> sudo dd if=/dev/mmcsd0 of=/dev/null bs=128k
^C247+0 records in
247+0 records out
32374784 bytes transferred in 4.377884 secs (7395076 bytes/sec)



2008/10/12 Alexander Motin <mav at freebsd.org>:
> Henry Hu wrote:
>>
>> I've tried your driver, and it worked fine at my laptop.
>> I have a Samsung R70, with built-in SD card reader(in fact, it can
>> read many cards, and there are 4 unknown devices related to it).The
>> transfer speed with dd bs=512 is almost 800KB/s, which I think is
>> fairly fast.
>
> bs=512 is a quite ineffective for any modern storage. With bigger bs you
> should get much bigger performance I think.
>
>> I'm testing it with a transcend 2G mini SD card, with SD-miniSD adapter.
>> I'm using 7-STABLE, so I changed kproc_create to kthread_create to
>> compile the mmcsd module.
>> There are errors, but the transfer completed normally.
>> sdhci0-slot0: Card inserted
>> mmc0: <MMC/SD bus> on sdhci0
>> sdhci0-slot0: Command error 1 (opcode 8 arg 426 flags 101 dlen 0 dflags 0)
>> sdhci0-slot0: Command error 1 (opcode 8 arg 426 flags 101 dlen 0 dflags 0)
>
> This is not a problem. It means that your card does not support SDHC CMD8
> command as it is not an SDHC actually.
>
>> mmcsd0: 1950MB <SD Memory Card> at mmc0 16MHz/4bit
>
> It means that top performance of this card on this controller is about
> 8MB/s. I expect that you may reach it on read operations if your card is not
> very old.
>
> --
> Alexander Motin
>


More information about the freebsd-mobile mailing list