The Following 15 Users Say Thank You to egoshin For This Useful Post: | ||
appnss, BLC, Cue, JorgeFX, lcuk, MohammadAG, Mr. Incredible, mveplus, NIN101, nkirk, pelago, stefanmohl, thecursedfly, theonelaw, uppercase |
![]() |
2010-07-07
, 23:02
|
Posts: 1,258 |
Thanked: 672 times |
Joined on Mar 2009
|
#92
|
The Following 2 Users Say Thank You to shadowjk For This Useful Post: | ||
![]() |
2010-07-08
, 00:45
|
Posts: 992 |
Thanked: 995 times |
Joined on Dec 2009
@ California
|
#93
|
The big difference for nand vs emmc isn't in sequential read/write.. Whereas the emmc can do something like 4-8Megabyte/s write per second sequentially, the built-in flash translation layer can not at all deal with random write (such as swap, /opt and MyDocs), and the speed for 4K random writes degrades to a few hundred kilobytes.
The OneNand has no FTL, so we can manage it ourselves, and we have a 600MHz cpu and 256 megs of ram, plenty of room to do something intelligent. As a result, the onenand with ubifs is a few magnitudes faster at serving IOs from a multitasking demand-paging operating system.
Reads are same magnitude in speed, as long as there are no writes interleaved.
![]() |
2010-07-08
, 17:53
|
Posts: 1,258 |
Thanked: 672 times |
Joined on Mar 2009
|
#94
|
The Following User Says Thank You to shadowjk For This Useful Post: | ||
![]() |
2010-07-08
, 18:14
|
Posts: 1,224 |
Thanked: 1,763 times |
Joined on Jul 2007
|
#95
|
The big difference for nand vs emmc isn't in sequential read/write.. Whereas the emmc can do something like 4-8Megabyte/s write per second sequentially, the built-in flash translation layer can not at all deal with random write (such as swap, /opt and MyDocs), and the speed for 4K random writes degrades to a few hundred kilobytes.
The OneNand has no FTL, so we can manage it ourselves, and we have a 600MHz cpu and 256 megs of ram, plenty of room to do something intelligent. As a result, the onenand with ubifs is a few magnitudes faster at serving IOs from a multitasking demand-paging operating system.
So, the interpretation - the current usage of MTD5 as root file space is useless from many point of view - the Read performance is the same as internal 32GB flash BUT (!) - CPU usage is overtop!
Actually, I strongly suspect that MTD5 access performance is limited by CPU performance (due to compression in UBIFS?) - wall time == system time.
![]() |
2010-07-08
, 19:22
|
Posts: 992 |
Thanked: 995 times |
Joined on Dec 2009
@ California
|
#96
|
The best options I can think of are:
- Use a microsd card with root filesystem on eMMC and swap on uSD (or vice versa)
- Use root on eMMC and swap on NAND.
The downside to first method is probably increased power usage due to uSD card.
The downside of the second is limiting of swap to 250MB rather than the current 768MB.
![]() |
2010-07-08
, 23:57
|
Posts: 1,258 |
Thanked: 672 times |
Joined on Mar 2009
|
#97
|
![]() |
2010-07-12
, 21:11
|
Posts: 5,795 |
Thanked: 3,151 times |
Joined on Feb 2007
@ Agoura Hills Calif
|
#98
|
![]() |
2010-07-13
, 00:35
|
Posts: 172 |
Thanked: 170 times |
Joined on Jan 2010
@ Sweden
|
#99
|
![]() |
2010-07-14
, 02:00
|
|
Posts: 142 |
Thanked: 49 times |
Joined on Oct 2009
@ Italy
|
#100
|
time dd if=src of=dest bs=64k count=3000
where 'src' and 'dest' were combinations of /dev/mtd5, /dev/mmcblk0p3, /dev/mmcblk1p2 (I set swap here) and /dev/null or /dev/zero.
The results are (time in seconds, measured with stock PR1.2 kernel):
MTD5 (flash-on-top-of-CPU, root FS):
READ -
wall time = 9.93,
sys time = 9.79
battery current=1400
/dev/mmcblk0p3 (regular N900 swap space, part of 32GB internal flash):
READ -
wall time = 9.87
sys time = 2.57
battery current = 1223, repeated=1870battery current=1252
WRITE -
wall time = 11.27
sys time = 2.28
/dev/mmcblk1p2 (a partition on micro SD, class 6):
READ -
wall time = 14.94
sys time = 3.44
battery current=977, repeated=1620battery current=1100
WRITE -
wall time = 19.23
sys time = 3.10
----------------------------------------------
So, the interpretation - the current usage of MTD5 as root file space is useless from many point of view - the Read performance is the same as internal 32GB flash BUT (!) - CPU usage is overtop!
Actually, I strongly suspect that MTD5 access performance is limited by CPU performance (due to compression in UBIFS?) - wall time == system time.
The move of root FS from MTD5 into 32GB may benefit not only in space but CPU usage and battery life.
We need only switch off the disk block caching for file content - it seems that if kernel finds disk block in cache it copies block from that cache and that consumes MORE energy than DMA read from flash chip: repeated reads take more battery current than first one.After root FS moved to 32GB flash the MTD5 can be used without compression for first order swap, it would greatly accelerate overall N900 performance (today swapout-swapin of huge behemoths like modest/gst-video-renderer may take up to 10secs during call answer). Or use it as file cache (my proposal #3).
EDIT: Battery current updated with more accurate measurement (N900 set offline). No significant fluctuation anymore.
Last edited by egoshin; 2010-07-07 at 21:37.