yashsingh1/xdaforums huggingface dataset:
[G1 Android Development] jubeh:
Swap is never, ever, regarded by the system as real memory, hence why the system won't report it, since you really only have ~100 mb physical ram.

As to why you're only using 48, I believe that 48 is 1/2 96, so it probably means pages are being compressed 2:1, so the full memory is being compressed and dumped into RAM, and it only occupies 48 MB, leaving you 48 free for other processes.

Again, remember comcapche is swap, not real memory.
[G1 Android Development] lbcoder:
I don't think that that analysis is quite right....

First off, you MUST maintain SOME amount of real memory available... otherwise it'll crash in a spectacular way. I believe that the linux kernel itself may have a safety feature that maintains a certain minimum amount of physical ram available. There ARE certain things that the linux kernel will not be willing to swap, such as ITSELF.

Just imagine what would happen if the kernel swapped itself..... any attempt to do this wouldn't end well. Especially if it tried to swap its ENTIRE self since the kernel MUST be in memory in order for it to run.

There is also the swappiness setting... it controls the system's tendency to swap.

And finally, there is the possibility that you may simply not be starting enough processes to consume the full memory!

So imagine this; you have your compcache set for a certain size. It grows to that size and then finally, the kernel says "screw you, you can't have any more memory!" blows an error back to compcache, which complains back to the kernel "sorry, swap is screwed." Yep.... the kernel tells compcache which tells the kernel rather than the kernel just knowing.

You definitely don't want this happening.
[G1 Android Development] lbcoder:
Note: I can forsee some serious stability problems that this could result in related to the low memory process killer. Specifically, your compcache grows to its maximum allowed size, you start an application, the low memory process killer figures that you've got plenty of memory available, doesn't kill anything off, tries to start some application, crashes spectacularly when the kernel complains back that it doesn't have any memory. I don't know if this would happen with a stock low memory process killer, but definitely would with the swap hacks added....
[G1 Android Development] domenukk:
92 MB of compcache doesn't really need 92MB of compcache... that's the point of being compcache. :D

Compcache file in RAM grows when cache gets stuffed inside compcache.

Setting a low swappiness will cause compcache to just swap what's needed.

And even with full compcache, in the end you end up having around 140 mb (or so) free ram. 92mb of compcache that takes like 50mb and 42 extra mb of normal ram.

I think this idea is great (I was just too lazy to try yet...). Instead of dalvik vm having to free up memory it can stuff some more mb in compcache. should be faster.

I didn't really think my post through... but I hope some of you understood some of the things I wanted to communicate xD
[G1 Android Development] lbcoder:
Interesting in theory, but if you actually read what I said, you would note that this is entirely IMPOSSIBLE and would crash spectacularly if not for and in some cases in SPITE of certain safety features built into the kernel.

Note: If you have 70 MB worth of data that CAN'T be swapped, that leaves 20 MB ***PEAK*** available to compcache.

It is neither fair nor sensible to think of all memory as being equal. Running processes ***MUST*** have REAL MEMORY.
[G1 Android Development] brainbone:
A little off-topic, but this discussion (the possibility of REAL "compressed" memory) sparked a thought/question:

Would/could KSM* bring any benefit to Android? (Not sure if the KSM module can even compile/work on ARM)

I know KSM is normally used for detecting and sharing duplicate pages among KVM guests, but I wonder how many pages in a typical running Android installation are duplicated, and thus candidates for sharing/de-duplication.

*I can't posts links yet, so those that don't know what KSM is, will just have to google for it.
[G1 Android Development] Super Jamie:
I was under the impression the kernel keeps itself in RAM and then reports free memory to the rest of the OS. This is why the phone physically has 192Mb RAM, but only reports 96Mb free (or 107Mb with RAM hack). Perhaps my understanding of Linux/Android memory reporting is not correct?

I think this is likely what is happening. Home, Phone, System and other processes with a low oom are refusing to swap out as they are still running. If the compcache allocation in RAM is dynamic as domenukk says, then those processes are occupying enough RAM that the ramzswap allocation can only grow to ~48Mb as I am seeing. I didn't think of this.

Nor have I tweaked swappiness. It's currently set to 60 (default) so I'd assume it's not too fussy with paging out. I will try playing with this at 10 and 100 to see if I can force anything more into swap or if it's less willing to swap.

I do not know either, but here are some links people may wish to look at

http://fedoraproject.org/wiki/Features/KSM

http://lwn.net/Articles/306704/

http://lwn.net/Articles/330589/

http://www.linux-kvm.com/content/using-ksm-kernel-samepage-merging-kvm
[G1 Android Development] mejorguille:
Ok I am not at all experienced in this area but this is just a suggestion. You say that you can only get 48mb of swap to be compressed at a time. If those 48mb were uncompressed, then that would occupy the 98mb you alloted to it. If you set the cc at say 128mb, then in (my) theory up to 64mb of it the actual ram would be used. I don't know how much sense I'm making but not sure exactly how to explain it. If you don't get it I'll try explaining my logic a little more in depth.
[G1 Android Development] Super Jamie:
It appears you are right. Even with swappiness set to 100 and opening every app on my phone I'm not able to fill more than half of 128Mb compcache before minfree stats gracefully closing processes:

/opt/android-sdk-linux_86/tools$ ./adb shell free
total used free shared buffers
Mem: 107332 105956 1376 0 32
Swap: 131064 65520 65544
Total: 238396 171476 66920
[G1 Android Development] mejorguille:
I rock=p

So what's your performance like, compared to say 32mb cc or no cc at all?
[G1 Android Development] Super Jamie:
It's different but I like it.

There is sometimes a slight (<2 second) pause when launching a new app (I assume this is compcache compressing old pages to swap to make way for the new app) however once the app is up and running, it almost never "exits" so switching between previously-launched apps is noticeably faster than without compcache. I run HelixLauncher Donut and it's never closed and re-launched while I've been trying this, however it did sometimes with 32Mb cc and quite often without cc at all.

I had 5 day uptime last week with 96Mb compcache (rebooted whilst testing another app for a friend) so I don't think stability is an issue. The CM wiki indicates performance with cc is better upon boot then gradually declines, even if that is the case, rebooting my phone once a week is no big issue.

Unless I run into any major issues, I'll be keeping my phone with large compcache :)
[G1 Android Development] domenukk:
ksm sound cool. As every app runs inside dalvik vm. Not sure though... somebody should ask cyanogen :P

I am happy thatlarge compcache works out so well for you.

BTW doesn't cyanogenmod 5 count the whole swap as real memory since test4 or so?

Oh and overclocking ondemand to as high as possible will speed up app opening and switching a lot while on compcache :)
[G1 Android Development] brainbone:
It's counted as available "swap" memory, but not "real" ram. Pages stored in "real" ram (memory that the cpu can directly execute code in) still need to be freed up (moved to swap) before previously swapped pages can be moved back in to "real" memory to be executed.

The beauty of KSM is that it does no "swapping". It simply combines 4KB pages that are identical -- so instead of two identical 4KB pages using 8KB of ram, they only take 4KB. The code is executed in place.

KSM would, however, still require swap. If at any time a virtual shared 4KB page is written to, it needs to be copied to a free page to avoid corrupting the virtual page it was a duplicate of before the write. Swap is needed to ensure that there will always be enough available free pages when this happens.

KSM is not dependent on a VM, but the existence of VMs (java or otherwise) increases the likelihood of duplicate pages.

I'd certainly be interested in cyanogen's thoughts on this, but I'm sure there are others that would be able to chime in as well.

Relevant excerpt from kernel.org/doc/ols/2009/ols2009-pages-19-28.pdf
[G1 Android Development] lbcoder:
Memory reporting is a tricky thing.

But in general, when RAM is allocated to HARDWARE, it is NOT REPORTED.

The chunk of the 192 that is not reported is assigned PRIMARILY to the RADIO. Another chunk is assigned to the GPU. Still more is assigned to the AUDIO HARDWARE.

The part used by the kernel itself IS reported. The most trivial empirical evidence to prove this to you is that when you change KERNELS, it doesn't affect the total system memory, despite your KNOWING that different kernels use different amounts of RAM.

Another bit of empirical proof is that activating COMPCACHE does not reduce the total physical ram reported. And yes, COMPCACHE is part of the kernel...

Now here's another concept of crash and burn: IF everything in memory could be cached in compcache, then what would stop compcache from caching compcache in a horrible infinite memory sucking loop? That would be very very bad, LOL.

NOW you're getting the idea! Running processes, kernel, etc., all need physical RAM (though actually those processes you mention most definitely CAN be swapped...), and therefore you CAN'T make the ENTIRE RAM into compcache!

Just beware of possible crash-and-burn ;)
[G1 Android Development] lbcoder:
That doesn't actually follow from what you've posted here.

What follows is that 105956-(65520/2)=73196 of what occupies your memory can't be swapped (kernel, running processes, etc.).
[G1 Android Development] Super Jamie:
Do you know why swap constantly "settles" at almost exactly half usage regardless of what size compcache I set?

For example, I set 64Mb compcache yesterday and rebooted. Just using my phone normally (browser, genie widget, music) I have this:

total used free shared buffers
Swap: 63992 32096 31896

Does this mean I am effectively reducing the amount of RAM the phone has for the kernel, "foreground app", "visible app" and "secondary servers" (to use the minfree terms), whilst at the same time allowing more "hidden app" and lower processes to swap out instead of terminating gracefully?
[G1 Android Development] kingklick:
This disturbs me

-------------------------------------

Sent via the XDA Tapatalk App
[G1 Android Development] domenukk:
He doesn't know much about it, yet. But he seems inerested.

Attached a short conversation over #twitter
[G1 Android Development] Vermithrax:
Here is a way to make Android use more than 50 percent of a swap partition. I am not sure how it will act with compcache... Should be the same... Run the following commands from a terminal or add them following to your userinit.sh file:

su
echo 80 > /proc/sys/vm/swappiness
echo 150 > /proc/sys/vm/vfs_cache_pressure

!!WARNING!! - Messing with VM settings can cause data loss and system instability... Not liable for damages... ;)

Using the above the "free" output is:

total used free shared buffers
Mem: 97708 95168 2540 0 356
Swap: 125296 88756 36540
Total: 223004 183924 39080

While we are at it... If anyone is willing... they can try this as well:

echo 1 > /proc/sys/vm/oom_kill_allocating_task

Reference : Article to Linux Insight

Been having pretty good results with it...

Here is a link to the rest of the vm settings...

Linux Insight article listing vm settings

L8r
[G1 Android Development] :
The latest CyanogenMod test build defaults to 12MB CompCache. After reading this, I've configured mine at 80MB. Let's see if it helps.
[G1 Android Development] :
80MB seems kind of excessive, overall experience suffers. Now tinkering with 64MB.

During the age of 4.x, I remember the phone will become unresponsive/unusable at all if CompCache is more than 32MB. It seems something is changed and now a much larger CompCache can be used without significant issues.
[G1 Android Development] brainbone:
While it would be more elegant if Dalvik was modified to register its memory region with KSM for deduplication, I'm not sure it's required. As long as KSM is available, I believe you can manually (via scripting) configure the memory regions KSM deduplicates.

It could be interesting if someone released a kernel with KSM enabled. Some adventurous souls may then figure out if KSM is any benefit to Android, without having to modify Dalvik.
[G1 Android Development] :
FYI. After installing 5.0.8, I gave 80MB CC a try and so far, it's been very impressive.
[G1 Android Development] :
For a short while... Moved back to 48MB...
[G1 Android Development] :
48MB CompCache is running quite good for me on CM6-RC1.

64MB slows down too much.
[HD2 General] slyre:
Hi people, this site has done wonders... kind of :)

just by reading alot of posts and info here ive been able to flash my htc and change roms, as im in australia i get all that telstra logo crap all through the phone.

My problem lies that once ive installed a new rom, customised the settings how i like, ill find 9 out of 10 times the phone will not restart and gets stuck at the white htc screen, it stays there and wont budge, even after 10- 15 mins

just curious as to what i could be doing wrong to cause this

currently its been flashed with HSPL and running the Touch-IT_BL_23569_tmous2.13_w_cookies_1.8.0 rom

i like it but cant use the phone most of the time after its restarted, and i definately dont want to revert back to the crappy telstra rom

any help would be much appreciated

thanks
[HD2 General] dwarf:
You need to flash a suitable radio for the rom your using.

Read the thread for the rom your using and see what radio they suggest.

Put the phone in to bootloader mode and flash the radio.
[HD2 General] slyre:
Thanks alot mate, been 3 days messing around with this, and a thread was my last resort

much appreciated
[Desire General] Igor02:
Hey!

I would love to skip a track in the (sense) music-player by holding the volume-up-button (1-2 sec). I dont have a key on my headphones, so this would be very comfortable! Is there a mod already? I didnt find anything through the search. Is this generally possible at all?

Thanks!

(and by the way: you guys at xda are AWSOME!! what a great community with so brilliant modders! thanks for your work! ;) )
[Desire General] Igor02:
Anyone? Please! This would be great ;)
[Desire General] govno64:
Bumping this thread. I know that Cyanogen mod has this. Anyone know how that works?
[Desire General] dorittos:
I'm interested in something like this too.
[Desire General] vpraveenis:
Bump... No one knows of any such mod?? Changing a song while commuting is a pain. And the desire will not work with a wired remote other than the stock thing which has crap headphones attached to it.
[Desire General] dorittos:
I'm also interested :D
[Desire General] phizo:
i'm also searching for this :/
[Desire General] SammyBoyWonder:
my stock headphone buttons dont work anymore so this would be ideal.
[Desire General] kout:
UP !

would love to see this feature implemented to the stock music player

I'm currently using PowerAMP, only because it has this feature, but unfortunately it uses a lot of battery life, and it's only a trial verion, which is going to expire soon :(

PLEASE :o
[Desire General] yeahman45:
poweramp has this feature? playerpro has it too but playerpro is draining my battery pretty quickly too
[Desire General] ldn.still.hf:
shake ur phone, u'll skip to the next track, that's what ttpod does.
[HD2 General] HectiQ:
Is there a way to ONLY set my dataconnection for MMS, but NOT for everything else? because I pay a lot when it's on.. my HD2 uses the dataconnection for everything, but I only want my WLan for apps. And for MMS data.
[HD2 General] Xp3RiM3nT:
yes actually :P

try this:

http://www.modaco.com/content/pocket-pc-software/246171/new-free-utility-nodata/

I havent tested it working on hd2 but I used it on my old omnia and it worked flawlessly.

(you could also just remove the internet settings but not the mms settings, they are stored seperately, but this will remove your ability to connect to the net in the future if you need to.)
[HD2 General] HectiQ:
great I will try it this evening :) thanks

edit: won't this stop my entire dataconnection (included mms?)

found sth else: will try this tonight: http://lmgtfy.com/?q=datacontroller+cab
[HD2 General] Xp3RiM3nT:
no, nodata allows you to specify which data connection is enabled and which is enabled, mms and internet use different connections so they appear seperately in the list to enable/disable.
[HD2 General] HectiQ:
this is what I'm looking for:

-dataconnection for MMS

-WLan for internet use of my installed programs, browsers etc.

Not sure now you make me doubt.
[Android Software Development] skrki:
Hi everyone,

Running the CM Eclair, here's the thing: I often have that Market problem where it starts downloading, and just gets stuck right there.

It appears to me that I'm not alone here.. am I?

I can always fix it by restarting Talk, together with gtalkservice, only manually, and looking to accomplish this through a script..

I have no problem killing/starting Talk, or starting gtalkservice (in shell), but I can't figure out the command that does this:

Application management -> Manage running services -> Tap to stop Gtalk service

D/GTalkService( 343): [GTalkService.1] logoutAllSessions

What shell command would run that intent? If that's at all possible...

I thought I could use am, similar to when I start it:

#am startservice -n com.google.android.apps.gtalkservice/com.google.android.gtalkservice.service.GTalkService

Ideas?

Thanks!

S.
[Android Software Development] Martin8412:
First type in ps

Find the process id for the process

Then type kill processid

For example

kill 1249
[Android Software Development] skrki:
Hi,

This is what I'm doing already.

procID=`pidof com.google.android.talk`;

if [ "$procID" != "" ]
then
echo Talk is running with ID $procID
echo "Killing GTalk..."
kill $procID
....
.......
.

It's not that simple, cos even after doing this, when you go and check running services, GTalkService is there.

It doesn't show in ps, so can't get it's ID.

Am I missing something really easy here?

Thanks very much for your response!
[Android Software Development] nicandris:
try autorun killer and kill it from the beginning! it's not yet in the market but you van find it here
[Android Software Development] skrki:
While that's not what I want to do, I did join the project. Interesting.. :) (if that was marketing, it worked haha!)
[Android Software Development] drive2droad:
I use startup auditor & block it from starting anytime
[Android Software Development] skrki:
Cool, that helps! Thank you!
[Android Software Development] nicandris:
haha just saw that :) lol
[Touch Pro, Fuze Themes and Apps] euxim:
I now use HTC Touch Pro for over a year and I love it!

However, I used to work with Symbian (nokia N70 still use it) and I had this answeringmachine that lets you direct the caller through a series of questions in a menu to lead you there where you want the caller to end up.

(same thing you find/hear with big/small companies "PRESS 0 TO CONTINUE" or "PRESS 1 IF YOU WANT CUSTOMURSERVICE OR PRESS 2 FOR THE HELPDESK" etc.)

I searched for months and months for this app. All I found were normal answering machines. No IVR voice respond system.

The Interactive Voice Call Manager from symian was perfect.

Does anybody have any idea where to look for a app like this or are there any Developers up for the task?

I find it hard to imagen that only Symbian got the idea for this.

So please XDA users let me know if you have any information regarding the IVCM for WM. (origanily called: IVR VOICE RESPOND SYSTEM)

PS: I love this site. It helped me fix a lot of problems I had with the HTC TP.
[Touch Pro, Fuze Themes and Apps] sanris:
We also tried to develop an ivr app a year before. the problem is after android v2.33 the raw messaging & USSD api's was removed and can be possible only in rooted phones. So even if we develop an similar app, it only works in rooted phones. so we are also waiting for google to release some api to raw messages and access to voice call like read autio stream from voice call and merge an audio stream to voice call. for now its not possible in android non-rooted phones.
[Touch Pro2, Tilt 2 Windows Mobile General] dinny66:
Hi,

Sorry if this has been asked before.

I reently removed a number of old apps etc from my device to free up some space etc.

I've now noticed that the storage memory numbers have gone through the roof, sitting at 214.84mb used, 58.78 free. It was much lower before.

Does this thing have a recycle bin like Windows that needs emptying? And if so, how?

Thanks guys

Mike.
[Touch Pro2, Tilt 2 Windows Mobile General] redpoint73:
Nope, there is no Recycle Bin or Trash Can in WM. Did you use the "Remove Programs" option in Settings>System to remove the apps?

Have you soft reset after removing the apps?
[Touch Pro2, Tilt 2 Windows Mobile General] dinny66:
trash

Hi

Thanks for the quick reply.

Yes I did use the remove programs function to remove them. It seems to have grown after doing that.

I don't have that many programs on the device, but don't understand why the storage space is so small. I keep all my music/videos/pictures etc on the storage card.

Is it possible to check for email attachements etc?

Thanks

Mike
[Touch Pro2, Tilt 2 Windows Mobile General] freakingwilly:
I would do a soft reset first, it's likely that WinMo isn't calculating your free storage space correctly. If that doesn't work, you can also search for large files and possibly find the reason why there is so much memory being used.

There is a program called "Search" in WinMo. Change the "Type" to "Larger than 64 KB" and leave the "Search for:" field blank. This will pull up every single file on your phone (and storage card) that is larger than 64KB in size.

You could also try some cleaning tools like SKTools or MemMaid to find the pesky files. Don't forget to clear up your Internet browsing history too.

Hope this helps! :D
[Touch Pro2, Tilt 2 Windows Mobile General] rsacipher:
You can try Treesize mobile, this will let you see all files and the amount of memory they take up.

Another program is memmaid to clean up after uninstallations.
[Touch Pro2, Tilt 2 Windows Mobile General] dinny66:
Thanks guys. I didn't even think about ie history! That cleared up loads. ;)

I had a look at the file search but it did't find anything remarkable, except maybe that when you set an mp3 as a ringtone it moves it to the main memory aswell, rather than just using the copy on the storage card. :mad:

Lots of GPS trackings also got cleaned out! :D

I'll track down this memmaid program and give it a whirl. I was also a bit harsher on clearing old programs out and that's helped too. And email attachements.

Up to 111mb storage free and 88mb program free. I can feel the weight difference already!

Thanks again!
[Touch Pro2, Tilt 2 Windows Mobile General] rsacipher:
You can save your email attachemets to the memory card, it's in tools-options-storage
[HD2 General] dreamerworx:
I installed this great piece of software a few weeks ago and it was working great until something happened - I cannot log in to their system, neither from the phone, nor the website via my browser... The phone app says it cannot log in, the webpanel just reloads the login page over and over again....

https://task2gather.com/t2g_push/tms.html

Anyone else using this, or having the same problems?

It is such a great app, shame that something went wrong :(:(:(:(
[HD2 General] dreamerworx:
At least their support system finally worked... not that they did anything, but at least I got the auto-response :mad: