[Galaxy S Plus I9001 Android Development] Christopher83:
FAQ - Frequently asked questions:

Q: What are the differences between EXUV and UV kernel versions?

A: The EXUV kernel versions have extremely undervolted settings for the cpu frequencies, they allows to have a very low battery drain, instead the UV kernel versions have undervolted settings a bit higher than EXUV versions, but always lower than stock kernel settings.

The EXUV kernel versions could give some problems (freezes, shutdowns, huge lags) on some devices because the cpu doesn't support too low voltage settings.

For a lower battery consumption, I suggest you to try EXUV versions first and to switch to UV versions only if you encounter one of the above mentioned problems.

Q: For kernel v4.0 and before, what are the differences between 398MB, 406MB and 416MB versions?

A: 398MB, 406MB and 416MB kernel versions have different free ram available for user space, with a higher free ram your device will work better with heavy apps, many concurrently used apps, heavy games, etc.

- 398MB versions have the same amount of free ram than stock kernels, they are more stable, everything is fully working, but you could have some slowdowns with apps that require a high amount of free memory.

- 406MB versions have additional 8 MB of free ram than stock kernels (that memory has been taken from SurfaceFlinger reservation), they are suitable for the users that use the device primarly for calls, messages, simple apps and simple games. The camera, video recording (both 480p and 720p modes) and video playback are fully working.

- 416MB versions have additional 18 MB of free ram than stock kernels (that memory has been taken from SurfaceFlinger reservation), they are suitable for the users that use the device also with heavy apps, various concurrently used apps and games. The camera, video recording (both 480p and 720p modes) and video playback are fully working.

Q: Why should I deactivate KSM (Kernel Samepage Merge)?

A: KSM (Kernel Samepage Merge), let us save a bit of RAM space used by kernel (max 10MB during my analysis) by merging duplicated memory pages used by different processes, but it has also some performance impacts, since it uses CPU time to perform those memory scanning and merging operations.

So, in few words, it could free up a bit of RAM, but sometimes keeps the CPU busy to complete its work.

After introducing the dynamic allocation of MM ION and PMEM ADSP heaps, KSM could cause issues while trying to use camera or camcorder and playing HW/HW+ videos.

This is due to the impossibility to allocate one or more memory pages that have been merged by KSM inside the memory area reserved for dynamic allocations for MM ION or PMEM ADSP heaps through CMA (Contiguous Memory Allocator).

I'm looking for a solution for this "incompatibility", but at the moment the tried changes didn't work.

So, as a workaround, don't activate KSM until we find a fully working solution, since the RAM freed by dynamic allocation is surely higher than KSM freed RAM without any performance impact during normal usage.

The option can be deactivated inside Settings -> Performance -> Memory management -> Kernel samepage merging.

Q: How can I get the Performance and Developer Options entries inside Settings menu?

A: Go inside Settings -> About Phone -> Scroll down and tap 7 times on Build number (it's an Easter Egg).

Q: How can I get the log after an unexpected shutdown / reboot?

A: After an unexpected shutdown / reboot of the device, if the problem may be kernel related, you should have the /proc/last_kmsg, if so, send me that log and I'll check it to find the possible cause of the problem.

Q: How can I get the logs when I encounter strange system issues while it's running?

A: Check first if the problems could be related to an app you're using and if you changed something in the last days before facing those issues.

If the problem started after installing the kernel, then let me have you logcat and dmesg:

- Open Terminal Emulator and execute these commands:

su
dmesg > /sdcard/dmesg.txt
locat -v time -d > /sdcard/logcat.txt

- Open you preferred file manager and go inside the internal sd card partition /sdcard

- Send me the dmesg.txt and logcat.txt files, if you want zip them first

Q: How can I mount a shared Windows folder with CIFS module?

1) By using Terminal Emulator

mount -o unc=\\\\[COLOR="DarkGreen"][I]ip[/I][/COLOR]\\[COLOR="Blue"][I]share[/I][/COLOR],noserverino,username=[I][COLOR="DarkOrange"]user[/COLOR][/I],password=[I][COLOR="Lime"]password[/COLOR][/I] -t cifs //[COLOR="DarkGreen"]ip[/COLOR]/[COLOR="Blue"]share[/COLOR] [I][COLOR="DarkSlateGray"]/mnt/cifs[/COLOR][/I]

2) Downloading and using CifsManager and configuring the new share as follow:

- Share Path = ip/share

- Mount Point = /mnt/cifs/share

- Username = username

- Password = password

- Options = unc=\\\\ip\\share,noserverino

Where:

ip is the ip address of your pc where the folder is shared

share is the shared folder name

user is the user name that can access the shared folder

password is the user password

/mnt/cifs is the mount point (must be created if you'd like to use the command approach with Terminal Emulator)