![]() |
2011-03-17
, 14:32
|
|
Posts: 519 |
Thanked: 123 times |
Joined on Oct 2010
@ Malaysia
|
#12
|
![]() |
2011-03-20
, 05:33
|
Posts: 1,258 |
Thanked: 672 times |
Joined on Mar 2009
|
#13
|
![]() |
2011-03-20
, 06:00
|
Posts: 92 |
Thanked: 95 times |
Joined on Feb 2010
@ Smyrna, Atlanta / Bangalore, India
|
#14
|
![]() |
2011-03-20
, 14:32
|
Posts: 370 |
Thanked: 443 times |
Joined on Jan 2006
@ Italy
|
#15
|
As for kernel reporting mmcb blocksize as "512k", it's not. It's saying logical blocksize is 512 bytes. This is meaningless for your purposes though, it only tells you the smallest request size that the mmc will accept. Internally it then translates 512 byte write into a read-modify-erse-write cycle of 128k or 256k, whatever its true block size is.
This brings us to the "noop" scheduler issue. You are correct that there are no moving parts, but the huge blocksize calls for scheduling writes close to eachother anyway, to minimize the amount of read-modify-erase-write cycles the mmc/usd has to do. Imagine... (CUT)
The NOOP scheduler inserts all incoming I/O requests into a simple, unordered FIFO queue and implements request merging
CFQ works by placing synchronous requests submitted by processes into a number of per-process queues and then allocating timeslices for each of the queues to access the disk. The length of the time slice and the number of requests a queue is allowed to submit depends on the IO priority of the given process (...) It can be considered a natural extension of granting IO time slices to a process
So ideally we'd want an elevator that knows about the special properties of flash. but we don't have one, so we use CFQ. which atleast has some heuristics for distributing IO "fairly" between processes.
- kernel: we need some free room. - scheduler: ok let's have a look at the discardable pages. Here they are. Just a second please. - scheduler choose exactly 128Kb ready for writing (and that's the page-cluster tunable at a kernel level, right?) - scheduler frees the memory requested with a single page-writing - scheduler: here I am again, you have those requested memory free - kernel: thank you
- check if the page to be unloaded is already cached and not dirty or in the current queue if yes -> load the page requested and discard the unloaded one if no -> put in the queue the page to be unloaded and serve the page to be loaded is the queue 128Kb? if yes -> write it out and update table of swapped pages if no -> job done
Moving swap to uSD gives a path for swap that is always free (well almost always unless you do heavy acesses to uSD by other means), and offloading swap from emmc means less random IO load on the emmc.
![]() |
2011-03-20
, 21:21
|
Posts: 370 |
Thanked: 443 times |
Joined on Jan 2006
@ Italy
|
#16
|
The Following 3 Users Say Thank You to jurop88 For This Useful Post: | ||
![]() |
2011-03-24
, 12:20
|
Posts: 1,397 |
Thanked: 2,126 times |
Joined on Nov 2009
@ Dublin, Ireland
|
#17
|
The Following User Says Thank You to ivgalvez For This Useful Post: | ||
![]() |
2011-03-24
, 19:21
|
Posts: 370 |
Thanked: 443 times |
Joined on Jan 2006
@ Italy
|
#18
|
Hi jurop88,
I've spent at least 20 minutes trying to find again this thread as I'm doing some experiments with information that is split across multiple threads:
(...)
Have you made any more progress?
![]() |
2011-03-25
, 07:56
|
Banned |
Posts: 358 |
Thanked: 160 times |
Joined on Dec 2010
|
#19
|
Hi jurop88,
I've spent at least 20 minutes trying to find again this thread as I'm doing some experiments with information that is split across multiple threads:
- Swappluble Wiki
- Massive interactivity improvement under high I/O load!
- Striping swap to increase performance under memory contention
- Nokia N900 Smartphone Performance Optimization Tune-up Utilities
- Swappolube to lubricate your gui
And this one
Have you made any more progress?
![]() |
2011-05-29
, 13:48
|
Banned |
Posts: 358 |
Thanked: 160 times |
Joined on Dec 2010
|
#20
|
What I can affirm is that on my machine in its current state, the baloons are now delayed (also 5 or 10 seconds) while chatting, don't know about emails, but I hear both vibration and notification sounds.