mm: writeback: every 500ms the writeback daemon kicks in and flushes …
…the dirty pages into disk. Thats not very pleasant for performance and *maybe* battery. This patch disables the writeback function while the screen is on, and enables it back when the screen is off to flush all the dirty pages. In my real world usage testing I notice a slight bump in smoothness and performance while using the device.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
tune CFQ
add ZEN IO scheduler

Conflicts:

	block/Kconfig.iosched
	block/Makefile

Conflicts:
	arch/arm/configs/sultan-intl_defconfig
	block/Kconfig.iosched
	block/Makefile
Add new scheduler: BFQ-v5r1 for 3.0

Change-Id: I40f4458284d4d086b47ee73c4d79c8b13458955f

Conflicts:

	arch/arm/configs/aries_galaxysmtd_defconfig
	block/Makefile

Conflicts:
	arch/arm/configs/sultan-intl_defconfig
	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:

	include/linux/elevator.h

Conflicts:
	block/blk-core.c
	block/elevator.c
	block/row-iosched.c
	include/linux/elevator.h
fix BFQ for latest block changes improvements
Set the bfq_slice_idle value 0
block: remove aliased requests from BFQ
UKSM 0.1.2.2
UKSM: default governor.
set lowmem debug level to 1

Conflicts:

	drivers/staging/android/lowmemorykiller.c

Conflicts:
	drivers/staging/android/lowmemorykiller.c
staging: android: lowmemorykiller: Don't count reserved free memory

The amount of reserved memory varies between devices. Subtract it
here to reduce the amount of devices specific tuning needed for the
minfree values.

Change-Id: I466ae8b18f5972f6f6d8b5a7d8c4ae69660de53a
Signed-off-by: Arve Hjønnevåg <arve@android.com>
Add zram for android optimization

Conflicts:
	drivers/staging/zram/Kconfig
	drivers/staging/zram/zram_drv.c
	drivers/staging/zram/zram_drv.h
	drivers/staging/zram/zram_sysfs.c
Staging: zram: Remove useless offset calculation in handle_uncompressed_page()

The offset of uncompressed page is always zero: handle_uncompressed_page()
doesn't have to care about it.

Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Staging: zram: Refactor zram_read/write() functions

This patch refactor the code of zram_read/write() functions. It does
not removes a lot of duplicate code alone, but is mostly a helper for
the third patch of this series (Staging: zram: allow partial page
operations).

Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Staging: zram: allow partial page operations

Commit 7b19b8d45b216ff3186f066b31937bdbde066f08 (zram: Prevent overflow
in logical block size) introduced ZRAM_LOGICAL_BLOCK_SIZE constant to
prevent overflow of logical block size on 64k page kernel.
However, the current implementation of zram only allow operation on block
of the same size as a page. That makes theorically legit 4k requests fail
on 64k page kernel.

This patch makes zram allow operation on partial pages. Basically, it
means we still do operations on full pages internally, but only copy the
relevent segments from/to the user memory.

Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Staging: zram: Replace mutex lock by a R/W semaphore

Currently, nothing protects zram table from concurrent access.
For instance, ZRAM_UNCOMPRESSED bit can be cleared by zram_free_page()
called from a concurrent write between the time ZRAM_UNCOMPRESSED has
been set and the time it is tested to unmap KM_USER0 in
zram_bvec_write(). This ultimately leads to kernel panic.

Also, a read request can occurs when the page has been freed by a
running write request and before it has been updated, leading to
zero filled block being incorrectly read and "Read before write"
error message.

This patch replace the current mutex by a rw_semaphore. It extends
the protection to zram table (currently, only compression buffers are
protected) and read requests (currently, only write requests are
protected).

Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Staging: zram: Fix kunmapping order

This patch fixes the unmapping order of KM_USER0/1 in
handle_uncompressed_page() and zram_read() so that kmap()/kunmap() calls
are correctly nested.

Reported-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
Reviewed-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
staging: zram: make global var "num_devices" use unique name

The global variable "num_devices" is too general to be
global. This patch switches the name to be "zram_num_devices".

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
staging: zram: fix zram locking

Currently init_lock only prevents concurrent execution of zram_init_device()
and zram_reset_device() but not zram_make_request() nor sysfs store functions.

This patch changes init_lock into a rw_semaphore. A write lock is taken by
init, reset and store functions, a read lock is taken by zram_make_request().
Also, avoids to release the lock before calling __zram_reset_device() for
cleaning after a failed init, thus preventing any concurrent task to see an
inconsistent state of zram.

Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>