android_kernel_samsung_msm8976/mm
Linus Torvalds 86779d367b Don't trigger congestion wait on dirty-but-not-writeout pages
shrink_inactive_list() used to wait 0.1s to avoid congestion when all
the pages that were isolated from the inactive list were dirty but not
under active writeback.  That makes no real sense, and apparently causes
major interactivity issues under some loads since 3.11.

The ostensible reason for it was to wait for kswapd to start writing
pages, but that seems questionable as well, since the congestion wait
code seems to trigger for kswapd itself as well.  Also, the logic behind
delaying anything when we haven't actually started writeback is not
clear - it only delays actually starting that writeback.

We'll still trigger the congestion waiting if

 (a) the process is kswapd, and we hit pages flagged for immediate
     reclaim

 (b) the process is not kswapd, and the zone backing dev writeback is
     actually congested.

This probably needs to be revisited, but as it is this fixes a reported
regression.

Reported-by: Felipe Contreras <felipe.contreras@gmail.com>
Pinpointed-by: Hillf Danton <dhillf@gmail.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Mel Gorman <mgorman@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: b738d764652dc5aab1c8939f637112981fce9e0e
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: I4fbcbb10d7ba242caf80da06bd8ed11770571cff
[vinmenon@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
2014-12-11 15:15:13 +05:30
..
Kconfig mm: vmscan: support setting of kswapd cpu affinity 2014-11-26 13:04:02 -08:00
Kconfig.debug defconfig: 8994: enable CONFIG_DEBUG_SLUB_PANIC_ON 2014-10-21 14:00:18 -07:00
Makefile mm: Add notifier framework for showing memory 2014-10-06 09:47:49 -07:00
backing-dev.c arch: Mass conversion of smp_mb__*() 2014-08-15 11:45:28 -07:00
balloon_compaction.c
bootmem.c mm: concentrate modification of totalram_pages into the mm core 2014-02-07 13:49:40 -08:00
bounce.c mm/bounce.c: fix a regression where MS_SNAP_STABLE (stable pages snapshotting) was ignored 2013-10-13 16:08:33 -07:00
cleancache.c
compaction.c mm/compaction: make isolate_freepages start at pageblock boundary 2014-06-16 13:42:53 -07:00
debug-pagealloc.c mm: Mark free pages as read only 2014-04-18 14:51:25 -07:00
dmapool.c
early_ioremap.c mm: create generic early_ioremap() support 2014-08-15 11:45:23 -07:00
fadvise.c
failslab.c
filemap.c arch: Mass conversion of smp_mb__*() 2014-08-15 11:45:28 -07:00
filemap_xip.c
fremap.c mm: fix use-after-free in sys_remap_file_pages 2014-01-09 12:24:24 -08:00
frontswap.c
highmem.c
huge_memory.c thp: fix copy_page_rep GPF by testing is_huge_zero_pmd once only 2014-01-25 08:27:12 -08:00
hugetlb.c hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned entry 2014-07-09 11:14:03 -07:00
hugetlb_cgroup.c
hwpoison-inject.c
init-mm.c
internal.h mm/page-writeback.c: do not count anon pages as dirtyable memory 2014-12-11 15:14:45 +05:30
interval_tree.c
kmemcheck.c
kmemleak-test.c
kmemleak.c
ksm.c ksm: Add showmem notifier 2014-10-06 09:53:55 -07:00
maccess.c
madvise.c mm: add a field to store names for private anonymous memory 2014-06-13 12:05:14 -07:00
memblock.c mm/memblock: add memblock_get_current_limit 2014-04-08 09:51:10 -07:00
memcontrol.c memcg: reparent charges of children before processing parent 2014-03-23 21:38:20 -07:00
memory-failure.c mm/memory-failure.c: don't let collect_procs() skip over processes for MF_ACTION_REQUIRED 2014-06-30 20:09:42 -07:00
memory.c Merge upstream tag 'v3.10.49' into msm-3.10 2014-08-20 13:23:09 -07:00
memory_hotplug.c
mempolicy.c Merge upstream tag 'v3.10.49' into msm-3.10 2014-08-20 13:23:09 -07:00
mempool.c
migrate.c Merge upstream linux-stable v3.10.28 into msm-3.10 2014-03-24 14:28:34 -07:00
mincore.c
mlock.c Merge upstream tag 'v3.10.40' into msm-3.10 2014-06-18 13:10:54 -07:00
mm_init.c
mmap.c mm: add a field to store names for private anonymous memory 2014-06-13 12:05:14 -07:00
mmu_context.c
mmu_notifier.c
mmzone.c
mprotect.c mm: add a field to store names for private anonymous memory 2014-06-13 12:05:14 -07:00
mremap.c mm, thp: close race between mremap() and split_huge_page() 2014-06-07 13:25:31 -07:00
msync.c
nobootmem.c mm/nobootmem.c: Drop __init annotation from free_bootmem_late 2014-04-21 15:28:38 -07:00
nommu.c mm: remove free_area_cache 2014-02-07 13:49:41 -08:00
oom_kill.c mm, oom: make dump_tasks public 2014-06-03 13:33:18 -07:00
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 mm/page_alloc: move freepage counting logic to __free_one_page() 2014-11-10 13:06:37 +05:30
page_cgroup.c
page_io.c mm: swap: Rate limit swap write errors 2013-11-14 09:27:11 -08:00
page_isolation.c mm/page_alloc: fix incorrect isolation behavior by rechecking migratetype 2014-11-10 13:05:38 +05:30
pageowner.c debugging: keep track of page owners 2014-03-28 13:33:08 -07:00
pagewalk.c mm/pagewalk.c: fix walk_page_range() access of wrong PTEs 2013-11-21 20:09:01 -08:00
percpu-km.c
percpu-vm.c
percpu.c percpu: make pcpu_alloc_chunk() use pcpu_mem_free() instead of kfree() 2014-06-07 13:25:37 -07:00
pgtable-generic.c mm: fix TLB flush race between migration, and change_protection_range 2014-01-09 12:24:23 -08:00
process_vm_access.c
quicklist.c
readahead.c
rmap.c mm: rmap: fix use-after-free in __put_anon_vma 2014-07-30 18:41:12 +05:30
shmem.c cope with potentially long ->d_dname() output for shmem/hugetlb 2014-01-09 16:35:41 -08:00
showmem.c mm: Add notifier framework for showing memory 2014-10-06 09:47:49 -07:00
slab.c
slab.h memcg: check that kmem_cache has memcg_params before accessing it 2013-09-07 22:09:58 -07:00
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 mm: close PageTail race 2014-04-03 12:01:05 -07:00
swap_state.c
swapfile.c
truncate.c
util.c nick kvfree() from apparmor 2014-09-23 10:37:57 -06:00
vmalloc.c Merge "Merge upstream linux-stable v3.10.28 into msm-3.10" 2014-03-26 23:36:07 -07:00
vmpressure.c
vmscan.c Don't trigger congestion wait on dirty-but-not-writeout pages 2014-12-11 15:15:13 +05:30
vmstat.c Revert "mm: add cma pcp list" 2014-08-22 11:03:00 -07:00
zbud.c zbud: add to mm/ 2013-10-18 18:24:55 -07:00
zswap.c mm, zswap: Fix CPU hotplug callback registration 2014-07-03 09:55:28 -07:00