cpufreq: Manage only online cpus - by Viresh Kumar from anarkia1976/AK-xGenesis

cpufreq core doesn't manage offline cpus and if driver->init() has returned
mask including offline cpus, it may result in unwanted behavior by cpufreq core
or governors.

We need to get only online cpus in this mask. There are two places to fix this
mask, cpufreq core and cpufreq driver. It makes sense to do this at common place
and hence is done in core.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>

https://github.com/anarkia1976/AK-xGenesis/commit/0556271c767071cd236ddb1509fa682d6bd498e8#diff-9cb8d0039fb739eef0bd6253de2acdd9R1106
mm: Set VM_MAX_READAHEAD to 256
mm: vmscan: when kswapd is awoken due to reclaim by a running task - by dorimanx from anarkia1976/AK-xGenesis

Set the priority of kswapd to that of the calling task thus making memory reclaim cpu activity affected by nice level.

http://ck.kolivas.org/patches/3.0/3.9/3.9-ck1/patches/mm-kswapd_inherit_prio-1.patch

https://github.com/anarkia1976/AK-xGenesis/commit/04304466f1bed4ddcbd257b3c40b0e1accb5de47#diff-e688914da9c733fb09af712240dc95afR2933
Always set noatime no diratime on all partitions! I/O Boost! - by dorimanx from anarkia1976/AK-xGenesis

Also mod read_ahead to 512. as seems that is faster! in test apps.

https://github.com/anarkia1976/AK-xGenesis/commit/e879557ce6e2e99a3f64fd43be0818eef10ae7cb#diff-3fbed1fd4d15699b74b30cabf5be8133R2200
https://github.com/anarkia1976/AK-xGenesis/commit/77376604c83ec7856e954d2f6c3d4092d2a1199d
mm: Set max readahead to 512
binfmt_elf.c: use get_random_int() to fix entropy depleting - by dorimanx from anarkia1976/AK-xGenesis

Changes:
--------
v4->v3:
- s/random_stack_user()/get_atrandom_bytes()/
- Move this function to ahead of its use to avoid the predeclaration.

v3->v2:
- Tweak code comments of random_stack_user().
- Remove redundant bits mask and shift upon the random variable.

v2->v1:
- Fix random copy to check up buffer length that are not 4-byte multiples.

v3 can be found at:
http://www.spinics.net/lists/linux-fsdevel/msg59597.html
v2 can be found at:
http://www.spinics.net/lists/linux-fsdevel/msg59418.html
v1 can be found at:
http://www.spinics.net/lists/linux-fsdevel/msg59128.html

Thanks,
-Jeff

Entropy is quickly depleted under normal operations like ls(1), cat(1),
etc...  between 2.6.30 to current mainline, for instance:

$ cat /proc/sys/kernel/random/entropy_avail
3428
$ cat /proc/sys/kernel/random/entropy_avail
2911
$cat /proc/sys/kernel/random/entropy_avail
2620

We observed this problem has been occurring since 2.6.30 with
fs/binfmt_elf.c: create_elf_tables()->get_random_bytes(), introduced by
f06295b ("ELF: implement AT_RANDOM for glibc PRNG seeding").

/*
 * Generate 16 random bytes for userspace PRNG seeding.
 */
get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));

The patch introduces a wrapper around get_random_int() which has lower
overhead than calling get_random_bytes() directly.

With this patch applied:
$ cat /proc/sys/kernel/random/entropy_avail
2731
$ cat /proc/sys/kernel/random/entropy_avail
2802
$ cat /proc/sys/kernel/random/entropy_avail
2878

Analyzed by John Sobecki.

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andreas Dilger <aedilger@gmail.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Arnd Bergmann <arnn@arndb.de>
Cc: John Sobecki <john.sobecki@oracle.com>
Cc: James Morris <james.l.morris@oracle.com>
Cc: Jakub Jelinek <jakub@redhat.com>
Cc: Ted Ts'o <tytso@mit.edu>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Ulrich Drepper <drepper@redhat.com>

https://github.com/anarkia1976/AK-xGenesis/commit/c1b3ae66d8863a02356a48f7f4c53bbc0e5b35d9