Linux 3.0.101
Test: Revert "Linux 3.0.101"

This reverts commit fedb9a1cb5b4902a60e4c65f9a1653419743e5e3.
mm: orphaned change
Test: Revert "Optimized memcopy"

This reverts commit d76d5a487a686f0c70deca8dcc3151412d9dbd4d.
Test: Revert "tzic: add required ifdef for sec asm extension"

This reverts commit 814fcd99dfcd75bad2d7645eec54a72c1d83ef9e.
Revert "Test: Revert "tzic: add required ifdef for sec asm extension""

This reverts commit 0b0361d490447bb48de11c6c12890473ea7d26d7.
Revert "Test: Revert "Optimized memcopy""

This reverts commit d317d4b593dcbced0f3537848dc08c915e4e99da.
Revert "Test: Revert "Linux 3.0.101""

This reverts commit 6300b70bd78489f0a69cb4562ee87634fd264166.
mm: remove compressed copy from zram in-memory

Swap subsystem does lazy swap slot free with expecting the page would be
swapped out again so we can avoid unnecessary write.

But the problem in in-memory swap(ex, zram) is that it consumes memory
space until vm_swap_full(ie, used half of all of swap device) condition
meet.  It could be bad if we use multiple swap device, small in-memory
swap and big storage swap or in-memory swap alone.

This patch makes swap subsystem free swap slot as soon as swap-read is
completed and make the swapcache page dirty so the page should be
written out the swap device to reclaim it.  It means we never lose it.

I tested this patch with kernel compile workload.

1. before

   compile time : 9882.42
   zram max wasted space by fragmentation: 13471881 byte
   memory space consumed by zram: 174227456 byte
   the number of slot free notify: 206684

2. after

   compile time : 9653.90
   zram max wasted space by fragmentation: 11805932 byte
   memory space consumed by zram: 154001408 byte
   the number of slot free notify: 426972

[akpm@linux-foundation.org: tweak comment text]
[artem.savkov@gmail.com: fix BUG due to non-swapcache pages in end_swap_bio_read()]
[akpm@linux-foundation.org: invert unlikely() test, augment comment, 80-col cleanup]
Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Artem Savkov <artem.savkov@gmail.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Seth Jennings <sjenning@linux.vnet.ibm.com>
Cc: Nitin Gupta <ngupta@vflare.org>
Cc: Konrad Rzeszutek Wilk <konrad@darnok.org>
Cc: Shaohua Li <shli@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Change-Id: I8f11fb7f0391954435002e7f290352f311c907d4

Signed-off-by: Paul Reioux <reioux@gmail.com>