android_kernel_samsung_msm8976/mm
Minchan Kim fc2a24ebb1 mm: Per process reclaim
These day, there are many platforms avaiable in the embedded market
and they are smarter than kernel which has very limited information
about working set so they want to involve memory management more heavily
like android's lowmemory killer and ashmem or recent many lowmemory
notifier(there was several trial for various company NOKIA, SAMSUNG,
Linaro, Google ChromeOS, Redhat).

One of the simple imagine scenario about userspace's intelligence is that
platform can manage tasks as forground and backgroud so it would be
better to reclaim background's task pages for end-user's *responsibility*
although it has frequent referenced pages.

This patch adds new knob "reclaim under proc/<pid>/" so task manager
can reclaim any target process anytime, anywhere. It could give another
method to platform for using memory efficiently.

It can avoid process killing for getting free memory, which was really
terrible experience because I lost my best score of game I had ever
after I switch the phone call while I enjoyed the game.

Reclaim file-backed pages only.
	echo file > /proc/PID/reclaim
Reclaim anonymous pages only.
	echo anon > /proc/PID/reclaim
Reclaim all pages
	echo all > /proc/PID/reclaim

Change-Id: Iabdb7bc2ef3dc4d94e3ea005fbe18f4cd06739ab
Signed-off-by: Minchan Kim <minchan@kernel.org>
Patch-mainline: linux-mm @ 9 May 2013 16:21:24
[vinmenon@codeaurora.org: trivial merge conflict fixes]
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
2015-04-11 15:37:46 -07:00
..
backing-dev.c
balloon_compaction.c
bootmem.c
bounce.c
cleancache.c
compaction.c mm: compaction: fix the page state calculation in too_many_isolated 2015-03-26 11:57:40 +05:30
debug-pagealloc.c
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c
filemap_xip.c
fremap.c
frontswap.c
highmem.c
huge_memory.c
hugetlb.c
hugetlb_cgroup.c
hwpoison-inject.c
init-mm.c
internal.h Merge "mm/page_alloc: restrict max order of merging on isolated pageblock Current pageblock isolation logic could isolate each pageblock individually. This causes freepage accounting problem if freepage with pageblock order on isolate pageblock is merged with other freepage on normal pageblock. We can prevent merging by restricting max order of merging to pageblock order if freepage is on isolate pageblock." 2014-12-18 14:23:16 -08:00
interval_tree.c
Kconfig mm: Per process reclaim 2015-04-11 15:37:46 -07:00
Kconfig.debug defconfig: 8994: enable CONFIG_DEBUG_SLUB_PANIC_ON 2014-10-21 14:00:18 -07:00
kmemcheck.c
kmemleak-test.c
kmemleak.c kmemleak: allow freeing internal objects after kmemleak was disabled 2015-03-11 16:14:44 +05:30
ksm.c ksm: Add showmem notifier 2014-10-06 09:53:55 -07:00
maccess.c
madvise.c
Makefile mm: move memtest under /mm 2015-04-01 09:27:42 -07:00
memblock.c
memcontrol.c memcg: add permission check 2015-03-19 14:59:18 -07:00
memory-failure.c
memory.c mm: swap: don't delay swap free for fast swap devices 2015-02-27 14:51:32 +05:30
memory_hotplug.c
mempolicy.c
mempool.c
memtest.c memtest: use phys_addr_t for physical addresses 2015-04-01 09:27:43 -07:00
migrate.c
mincore.c
mlock.c
mm_init.c
mmap.c
mmu_context.c
mmu_notifier.c
mmzone.c
mprotect.c
mremap.c
msync.c
nobootmem.c
nommu.c
oom_kill.c
page-writeback.c mm/page-writeback.c: fix divide by zero in bdi_dirty_limits() 2014-11-25 21:00:10 -08:00
page_alloc.c Revert "vmstat: create separate function to fold per cpu diffs into local counters" 2015-03-26 15:49:43 +05:30
page_cgroup.c
page_io.c
page_isolation.c mm/page_alloc: Call kernel_map_pages in unset_migrateype_isolate 2015-03-19 11:34:36 -07:00
pageowner.c
pagewalk.c mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range 2015-01-20 16:10:02 +05:30
percpu-km.c
percpu-vm.c
percpu.c
pgtable-generic.c
process_vm_access.c
quicklist.c
readahead.c
rmap.c
shmem.c
showmem.c mm: Add notifier framework for showing memory 2014-10-06 09:47:49 -07:00
slab.c
slab.h
slab_common.c
slob.c
slub.c mm: slub: panic for object and slab errors 2014-10-22 11:16:52 -07:00
sparse-vmemmap.c
sparse.c
swap.c
swap_state.c Merge "lowmemorykiller: Don't count swap cache pages twice" 2015-04-09 06:38:02 -07:00
swapfile.c mm: swap: don't delay swap free for fast swap devices 2015-02-27 14:51:32 +05:30
truncate.c
util.c nick kvfree() from apparmor 2014-09-23 10:37:57 -06:00
vmalloc.c mm: kmemleak: avoid false negatives on vmalloc'ed objects 2015-03-11 16:12:48 +05:30
vmpressure.c mm: vmpressure: scale pressure based on reclaim context 2015-04-08 22:33:46 +05:30
vmscan.c mm: Per process reclaim 2015-04-11 15:37:46 -07:00
vmstat.c Revert "vmstat: create separate function to fold per cpu diffs into local counters" 2015-03-26 15:49:43 +05:30
zbud.c
zswap.c