defconfig: enabling CONFIG_AIO
[PATCH] sched: Fix loadavg calculations (patch by AndreiLux: https://gist.github.com/AndreiLux/5411832)
This includes the alteration of the load calculation frequency
by Klaus Ripke <klaus@ripke.com> 'LOAD_FREQ (4*HZ+61) avoids loadavg Moire'
http://ripke.com/loadavg/moire

But correctly alters the timings for 200 HZ devices as in the mobile
space, the original patch is meant for 100 HZ kernels on x86 and other archs.

Furthermore, the exponential constants are completely wrong for the same
reason, they were caluclated and hardcoded for 100 HZ.

From https://lkml.org/lkml/2013/2/1/93 , the exponential math is taken
to fully expand the macro behind those values and to be truly HZ independent.

The 64bit-ness of the above patch is avoided for our ARM purposes.

Change-Id: If2b3479dd26f9666cfcb837488234a9b43fdb6c9
again corrections to LOAD_FREQ calculation (thx again AndreiLux) + added comments how these values actually get calculated

Change-Id: Id43c4e233d2ac4e9564d934b30bac4489a2a482d
sched: don't call task_group() many times in set_task_rq()

It improves perfomance, especially if autogroup enabled.

The size of set_task_rq() was 0x180 and now it is 0xa0.

Signed-off-by: Andrew Vagin <avagin@openvz.org>
word-at-a-time: make the interfaces truly generic

This changes the interfaces in <asm/word-at-a-time.h> to be a bit more
complicated, but a lot more generic.

In particular, it allows us to really do the operations efficiently on
both little-endian and big-endian machines, pretty much regardless of
machine details.  For example, if you can rely on a fast population
count instruction on your architecture, this will allow you to make your
optimized <asm/word-at-a-time.h> file with that.

NOTE! The "generic" version in include/asm-generic/word-at-a-time.h is
not truly generic, it actually only works on big-endian.  Why? Because
on little-endian the generic algorithms are wasteful, since you can
inevitably do better. The x86 implementation is an example of that.

(The only truly non-generic part of the asm-generic implementation is
the "find_zero()" function, and you could make a little-endian version
of it.  And if the Kbuild infrastructure allowed us to pick a particular
header file, that would be lovely)

The <asm/word-at-a-time.h> functions are as follows:

 - WORD_AT_A_TIME_CONSTANTS: specific constants that the algorithm
   uses.

 - has_zero(): take a word, and determine if it has a zero byte in it.
   It gets the word, the pointer to the constant pool, and a pointer to
   an intermediate "data" field it can set.

   This is the "quick-and-dirty" zero tester: it's what is run inside
   the hot loops.

 - "prep_zero_mask()": take the word, the data that has_zero() produced,
   and the constant pool, and generate an *exact* mask of which byte had
   the first zero.  This is run directly *outside* the loop, and allows
   the "has_zero()" function to answer the "is there a zero byte"
   question without necessarily getting exactly *which* byte is the
   first one to contain a zero.

   If you do multiple byte lookups concurrently (eg "hash_name()", which
   looks for both NUL and '/' bytes), after you've done the prep_zero_mask()
   phase, the result of those can be or'ed together to get the "either
   or" case.

 - The result from "prep_zero_mask()" can then be fed into "find_zero()"
   (to find the byte offset of the first byte that was zero) or into
   "zero_bytemask()" (to find the bytemask of the bytes preceding the
   zero byte).

   The existence of zero_bytemask() is optional, and is not necessary
   for the normal string routines.  But dentry name hashing needs it, so
   if you enable DENTRY_WORD_AT_A_TIME you need to expose it.

This changes the generic strncpy_from_user() function and the dentry
hashing functions to use these modified word-at-a-time interfaces.  This
gets us back to the optimized state of the x86 strncpy that we lost in
the previous commit when moving over to the generic version.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
modified for Linux 3.0 from Linux 3.4+ by faux123
input: adding TouchWake
thanks to Ezekeel and DerTeufel for the porting
modded for proximity sensor on the S3
touchwake: missing main file
defconfig: enabling TouchWake