Jump to content

Benchmarking SDCard read timings with TCK0.7 on MCR1.8


Guest teknologist

Recommended Posts

Guest teknologist

Hi,

After noticing hdparm was included in MCR, I decided to give it a try !

here is my results on MCR 1.8 with TCK0.7 (stock Completely Fair process scheduler and the new CFS I/O block layer) on a Sandisk Class 6 16Gb transflash:

(These were done using SSH, device on power AC and charging)

# hdparm -t /dev/block//vold/179:1

/dev/block//vold/179:1:

Timing buffered disk reads: 16 MB in 3.08 seconds = 5317 kB/s

other iterations:

Timing buffered disk reads: 17 MB in 3.10 seconds = 5597 kB/s

Timing buffered disk reads: 17 MB in 3.15 seconds = 5518 kB/s

Timing buffered disk reads: 17 MB in 3.09 seconds = 5632 kB/s

All these were made while Gallery was indexing (caching thumbnails) for my 1000 photos...Will put more results once the SDCard is almost idle.. ;-)

IMHO these are not bad at all and seem consistent, considering I am using a Class 6 card (which should rate to 6MB/s) .

Don't forget they are real life results, as apps would read to the card (ie going through OS buffering layer etc.) and not raw results.

Share your results.

[EDIT] After Gallery finished indexing and thumbnailing my photos I jumped to about 8-9MB/s:

# hdparm -t /dev/block//vold/179:1

/dev/block//vold/179:1:

Timing buffered disk reads: 27 MB in 3.00 seconds = 9207 kB/s

Iterations:

Timing buffered disk reads: 25 MB in 3.10 seconds = 8235 kB/s

Timing buffered disk reads: 25 MB in 3.09 seconds = 8276 kB/s

Timing buffered disk reads: 25 MB in 3.09 seconds = 8284 kB/s

Timing buffered disk reads: 25 MB in 3.07 seconds = 8316 kB/s

Edited by teknologist
Link to comment
Share on other sites

Guest DougEdey

I just attempted on mine (using a terminal emulator since I can't ssh in) and I got

8813kB/s for timing buffered reads, but then it failed with:

HDIO_DRIVE_CMD: Inappropriate IOCTL for device

Link to comment
Share on other sites

Guest teknologist
I just attempted on mine (using a terminal emulator since I can't ssh in) and I got

8813kB/s for timing buffered reads, but then it failed with:

HDIO_DRIVE_CMD: Inappropriate IOCTL for device

you can ignore the HDIO_DRIVE_CMD: Inappropriate IOCTL for device error !

it just means hdparm issued a command not supported on flash devices... (mainly a PATA/SATA command ;-)

Would be nice if you could add the brand and model/Class of your SDCard !! ;-)

Edited by teknologist
Link to comment
Share on other sites

Guest DougEdey

I was gonna do that with the full output! I suspect it's because I'm on the Desire ROM.

PNY 16GB Micro SDHC Memory Card

(cheap one from Play.com for £26)

Link to comment
Share on other sites

Guest ludo218

hdparm /dev/block//vold/179:1 :

Timing buffered disk reads:   22 MB in 3.03 seconds = 7413 kB/s


Timing buffered disk reads:   32 MB in 3.06 seconds = 10676 kB/s


Timing buffered disk reads:   33 MB in 3.03 seconds = 11139 kB/s


Timing buffered disk reads:   33 MB in 3.08 seconds = 10964 kB/s


Timing buffered disk reads:   33 MB in 3.04 seconds = 11105 kB/s
hdparm -t /dev/block/mmcblk0 :
Timing buffered disk reads:   41 MB in 3.00 seconds = 13978 kB/s


Timing buffered disk reads:   55 MB in 3.01 seconds = 18649 kB/s


Timing buffered disk reads:   54 MB in 3.03 seconds = 18197 kB/s


Timing buffered disk reads:   55 MB in 3.00 seconds = 18763 kB/s


Timing buffered disk reads:   56 MB in 3.01 seconds = 18993 kB/s

On stock EPE54B + Superboot. My SD is a class 6 SanDisk 8Go

Edited by ludo218
Link to comment
Share on other sites

Guest teknologist
I was gonna do that with the full output! I suspect it's because I'm on the Desire ROM.

PNY 16GB Micro SDHC Memory Card

(cheap one from Play.com for £26)

You don't get me ! Everyone is going to have that error ;-)

I got it, just didn't print it in the post cause it's irrelevant...

No worries s it's completely normal !

Well your PNY SDCard works great ! :-)

Edited by teknologist
Link to comment
Share on other sites

Guest teknologist
Timing buffered disk reads:   22 MB in 3.03 seconds = 7413 kB/s


Timing buffered disk reads:   32 MB in 3.06 seconds = 10676 kB/s


Timing buffered disk reads:   33 MB in 3.03 seconds = 11139 kB/s


Timing buffered disk reads:   33 MB in 3.08 seconds = 10964 kB/s


Timing buffered disk reads:   33 MB in 3.04 seconds = 11105 kB/s

On stock EPE54B + Superboot. My SD is a class 6 SanDisk 8Go

Stock Kernel 2.6.32 right ?

Link to comment
Share on other sites

Guest teknologist
Yes. My only customisations so far are Superboot from here (not the highmem version), and busybox, extracted from the Modaco rom

Seems normal as 2.6.32 uses Deadline I/O elevator Anticipatory I/O elevator as default whereas in 2.6.33 (the source tree used for TCK0.7) google changed it to CFQ and I decided to follow Google's advice.

As for the Deadline I/O elevator found on many other kernel/ROMs, CFQ is more fair in terms of parallelism whereas Deadline is more of a dumb elevator, prioritizing throughput for the current op.

Anticipatory was completely removed from 2.6.33 android kernel tree, so it's not a choice anymore !

Also if I run hdparm agains the actual underlying block device (/dev/block/mmcblk0) I get a lot better results:

hdparm -t /dev/block/mmcblk0

Timing buffered disk reads: 42 MB in 3.03 seconds = 14193 kB/s

Timing buffered disk reads: 42 MB in 3.07 seconds = 13986 kB/s

Timing buffered disk reads: 42 MB in 3.04 seconds = 14121 kB/s

Seems the vold adds a huge overhead.

So I guess it's interesting to have both results for everyone.

Edited by teknologist
Link to comment
Share on other sites

Guest ludo218

Thanks for the explanation <_< btw, the kernel version of the EPE54B build is 2.6.29 (-01117-g4bc62c2)

edit : I edited my 1st post to include the results of hdparm -t /dev/block/mmcblk0

Edited by ludo218
Link to comment
Share on other sites

Guest teknologist
Thanks for the explanation <_< btw, the kernel version of the EPE54B build is 2.6.29 (-01117-g4bc62c2)

edit : I edited my 1st post to include the results of hdparm -t /dev/block/mmcblk0

Yep, 2.6.29 also uses Deadline I/O elevator Anticipatory I/O elevator

BTW, you can change I/O elevator "on the fly" for any block device.

So you could do:

echo "cfq" > /sys/block/mmcblk0/queue/scheduler
and then rerun the benchmarks and get the results to see the difference ;-) If you reboot the elevator will go back to the kernels default. or you can revert it to deadline with:
echo "deadline" > /sys/block/mmcblk0/queue/scheduler

If you want more infos, this short article should help you:

http://www.cyberciti.biz/faq/linux-change-...-for-harddisk/

Edited by teknologist
Link to comment
Share on other sites

Guest ludo218

Humm I'm not sure the scheduler is echoed correctly :

# echo "cfq" > /sys/block/mmcblk0/queue/scheduler

# cat /sys/block/mmcblk0/queue/scheduler

noop [anticipatory]

(tried several times). Do you know why ? Maybe the kernel is not compiled with support of other schedulers...

Edited by ludo218
Link to comment
Share on other sites

Guest xkonni
Humm I'm not sure the scheduler is echoed correctly :

# echo "cfq" > /sys/block/mmcblk0/queue/scheduler

# cat /sys/block/mmcblk0/queue/scheduler

noop [anticipatory]

(tried several times). Do you know why ? Maybe the kernel is not compiled with support of other schedulers...

just like you guessed, from the cat output you can see that you only got noop and anticipatory schedulers available.

Link to comment
Share on other sites

Guest DougEdey

With the defaults on mmcblk0 I get

47MB in 3.05s = 15472kB/s

cfq:

mmcblk0 = 17275 kB/s

block//vold/179:1 = 6808 kB/s (lower then last time, something must be going on in the background)

deadline:

mmcblk0 = 17625 kB/s

block//vold/179:1 = 9139 kB/s

So deadline seems best for this memory card....

Link to comment
Share on other sites

Guest teknologist
Humm I'm not sure the scheduler is echoed correctly :

# echo "cfq" > /sys/block/mmcblk0/queue/scheduler

# cat /sys/block/mmcblk0/queue/scheduler

noop [anticipatory]

(tried several times). Do you know why ? Maybe the kernel is not compiled with support of other schedulers...

Exactly ! stock kernel might only have those.

And to be correct, yes, stock kernels < 2.6.33 uses anticipatory and not deadline. My bad !

Link to comment
Share on other sites

Guest teknologist
With the defaults on mmcblk0 I get

47MB in 3.05s = 15472kB/s

cfq:

mmcblk0 = 17275 kB/s

block//vold/179:1 = 6808 kB/s (lower then last time, something must be going on in the background)

deadline:

mmcblk0 = 17625 kB/s

block//vold/179:1 = 9139 kB/s

So deadline seems best for this memory card....

it's not that simple ! many processes might use the card in //

Deadline is not as smart as CFQ ! Are you sure you are using deadline though ??? ;-)

Read the edited previous posts...

Also, a benchmark is still kind of synthetic and doesn't reflect real-life ! ;-)

and last but not least Anticipatory I/O elevator was completely removed from 2.6.33 android kernel tree, so it's not a choice anymore !

BTW, what ROM and kernel are you using ?

Edited by teknologist
Link to comment
Share on other sites

Guest DougEdey
BTW, what ROM and kernel are you using ?

I'm using the Alpha 12 of the Desire ROM that Paul provided, I haven't stuck any customizations on it except for what both yourself and Paul have done already <_<

Link to comment
Share on other sites

Guest teknologist
I'm using the Alpha 12 of the Desire ROM that Paul provided, I haven't stuck any customizations on it except for what both yourself and Paul have done already <_<

So you are using TCK0.7 which has CFQ as default but has all 2.6.33 I/O elevators available (all except anticipatory which is not available anymore) !

Link to comment
Share on other sites

Guest teknologist
I did some research, my device is a class 2, I can't find the switches to do a write test. Do you know of any?

LOL !

No and you shouldn't ! How would you do a real write test without overwriting your data ??? ;-)

Link to comment
Share on other sites

Guest DougEdey
LOL !

No and you shouldn't ! How would you do a real write test without overwriting your data ??? ;-)

I've got some space free!

Link to comment
Share on other sites

Guest teknologist
I've got some space free!

Then you could copy a file to the card and see how fats it goes! ;-)

you've got free space in a partition...that's not free space from a kernel point of view.

Now if you have a virgin sdcard you could test raw writing speed using the dd command.

Google for it !

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.