Kill task closest in size to memory needed to free

Instead of killing the largest available task, kill the task closest in size to the amount of memory we actually need to free to satisfy the minfree threshold.

Thanks to kodos96, ytt3r & DerTeufel

Change-Id: Ib0872902251d216e88cfe16e4942ca04b6eed848
Added SIO scheduler (set to default)

Change-Id: Ic5a8ed8f3eb008de23fa768267d33d72c3134621

Conflicts:

	arch/arm/configs/mackay_p4wifi_defconfig
	block/Kconfig.iosched
	block/Makefile
Add ROW scheduler

Change-Id: I400f6f4b9c4733d97cbfddd7abe6b77885199877

Conflicts:

	block/Kconfig.iosched
	block/Makefile
Set default IO scheduler to ROW and merge block&ROW improvements

_________________________________________________________
block: Add support for reinsert a dispatched req
block: Add API for urgent request handling
row: Adding support for reinsert already dispatched req
row: Add support for urgent request handling
block: row: Add some debug information on ROW queues
block: row: Insert dispatch_quantum into struct row_queue
block: row: fix sysfs functions - idle_time conversion
block: row: Aggregate row_queue parameters to one structure

Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
_________________________________________________________
iosched: prevent aliased requests from starving other I/O

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
_________________________________________________________
block: reorganize queue draining
block: reorder elevator switch sequence
block: remove elevator_queue->ops

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
_________________________________________________________

Conflicts:

	arch/arm/configs/cyanogenmod_galaxysbmtd_defconfig
	arch/arm/configs/cyanogenmod_galaxysmtd_defconfig
Remove unused defconfigs
block: prepare I/O context code for BFQ

Signed-off-by: Fabio Checconi <fabio@gandalf.sssup.it>
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>

Conflicts:

	block/Kconfig.iosched
	block/Makefile
block: introduce the BFQ-v5r1 I/O sched for 3.1

Add the BFQ-v5r1 I/O scheduler to 3.1.
The general structure is borrowed from CFQ, as much code. A (bfq_)queue is
associated to each task doing I/O on a device, and each time a scheduling
decision has to be taken a queue is selected and it is served until it expires.

    - Slices are given in the service domain: tasks are assigned budgets,
      measured in number of sectors. Once got the disk, a task must
      however consume its assigned budget within a configurable maximum time
      (by default, the maximum possible value of the budgets is automatically
      computed to comply with this timeout). This allows the desired latency
      vs "throughput boosting" tradeoff to be set.

    - Budgets are scheduled according to a variant of WF2Q+, implemented
      using an augmented rb-tree to take eligibility into account while
      preserving an O(log N) overall complexity.

    - A low-latency tunable is provided; if enabled, both interactive and soft
      real-time applications are guaranteed very low latency.

    - Latency guarantees are preserved also in presence of NCQ.

    - High throughput with flash-based devices, while still preserving
      latency guarantees.

    - Useful features borrowed from CFQ: cooperating-queues merging (with
      some additional optimizations with respect to the original CFQ version),
      static fallback queue for OOM.

    - BFQ supports full hierarchical scheduling, exporting a cgroups
      interface.  Each node has a full scheduler, so each group can
      be assigned its own ioprio and an ioprio_class.

    - If the cgroups interface is used, weights can be explictly assigned,
      otherwise ioprio values are mapped to weights using the relation
      weight = IOPRIO_BE_NR - ioprio.

    - ioprio classes are served in strict priority order, i.e., lower
      priority queues are not served as long as there are higher priority
      queues.  Among queues in the same class the bandwidth is distributed
      in proportion to the weights of each queue. A very thin extra bandwidth
      is however guaranteed to the Idle class, to prevent it from starving.

Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>
arm/crypto: Add optimized AES and SHA1 routines
Add assembler versions of AES and SHA1 for ARM platforms.  This has provided
up to a 50% improvement in IPsec/TCP throughout for tunnels using AES128/SHA1.

Signed-off-by: David McCullough <ucdevel@gmail.com>
random: entropy tweaks are all the rage nowadays

use nonblocking for all.  Read this web page:
http://lwn.net/Articles/489734/
LOAD_FREQ (4*HZ+61) avoids loadavg Moire

http://ripke.com/loadavg/moire

Change-Id: I8e736bbecb804c63ae745cb802162deb6031e33d
Improve the performance of memcpy and memmove

The performance of memcpy and memmove of the general version is very inefficient, this patch improved them.

Change-Id: Id3e3d4bae07fedccb0fb97ac916dcb0897b128b7
Signed-off-by: Miao Xie <miaox <at> cn.fujitsu.com>
Improve memcopy/memmove

Thanks to DerTeufel!

Change-Id: Ie549325afdb82a9ba265c6804e72778cf6bb51de

Conflicts:

	lib/Makefile
Bump kernel version to v1.1