Linus Torvalds
caf491916b
Revert "revert "Revert "mm: remove __GFP_NO_KSWAPD""" and associated damage
...
This reverts commits a50915394f and
d7c3b937bd .
This is a revert of a revert of a revert. In addition, it reverts the
even older i915 change to stop using the __GFP_NO_KSWAPD flag due to the
original commits in linux-next.
It turns out that the original patch really was bogus, and that the
original revert was the correct thing to do after all. We thought we
had fixed the problem, and then reverted the revert, but the problem
really is fundamental: waking up kswapd simply isn't the right thing to
do, and direct reclaim sometimes simply _is_ the right thing to do.
When certain allocations fail, we simply should try some direct reclaim,
and if that fails, fail the allocation. That's the right thing to do
for THP allocations, which can easily fail, and the GPU allocations want
to do that too.
So starting kswapd is sometimes simply wrong, and removing the flag that
said "don't start kswapd" was a mistake. Let's hope we never revisit
this mistake again - and certainly not this many times ;)
Acked-by: Mel Gorman <mgorman@suse.de>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-12-10 11:03:05 -08:00
..
backing-dev.c
backing-dev: use kstrto* in preference to simple_strtoul
2012-08-25 16:58:14 +08:00
bootmem.c
revert "mm: fix-up zone present pages"
2012-11-16 14:33:04 -08:00
bounce.c
bounce: allow use of bounce pool via config option
2012-07-18 16:40:35 -04:00
cleancache.c
compaction.c
mm: compaction: validate pfn range passed to isolate_freepages_block
2012-12-06 11:17:33 -08:00
debug-pagealloc.c
dmapool.c
fadvise.c
switch simple cases of fget_light to fdget
2012-09-26 22:20:08 -04:00
failslab.c
filemap.c
readahead: fault retry breaks mmap file read random detection
2012-10-09 16:22:47 +09:00
filemap_xip.c
mm: move all mmu notifier invocations to be done outside the PT lock
2012-10-09 16:22:58 +09:00
fremap.c
remap_file_pages: correctly handle the case of a NULL vm_ops pointer
2012-10-19 13:37:57 -07:00
frontswap.c
frontswap: support exclusive gets if tmem backend is capable
2012-09-21 10:38:12 -04:00
highmem.c
mm: highmem: don't treat PKMAP_ADDR(LAST_PKMAP) as a highmem address
2012-11-16 14:33:04 -08:00
huge_memory.c
mm: huge_memory: Fix build error.
2012-10-15 07:59:15 -07:00
hugetlb.c
mm: document PageHuge somewhat
2012-10-09 16:23:03 +09:00
hugetlb_cgroup.c
hugetlb/cgroup: remove exclude and wakeup rmdir calls from migrate
2012-07-31 18:42:41 -07:00
hwpoison-inject.c
memcg: rename config variables
2012-07-31 18:42:43 -07:00
init-mm.c
internal.h
mm, thp: fix mlock statistics
2012-10-09 16:23:03 +09:00
interval_tree.c
mm: add CONFIG_DEBUG_VM_RB build option
2012-10-09 16:22:42 +09:00
Kconfig
mm: enable CONFIG_COMPACTION by default
2012-10-09 16:22:53 +09:00
Kconfig.debug
kmemcheck.c
kmemleak-test.c
kmemleak.c
kmemleak: use rbtree instead of prio tree
2012-10-09 16:22:39 +09:00
ksm.c
mm: wrap calls to set_pte_at_notify with invalidate_range_start and invalidate_range_end
2012-10-09 16:22:58 +09:00
maccess.c
madvise.c
mm: prepare VM_DONTDUMP for using in drivers
2012-10-09 16:22:18 +09:00
Makefile
mm: replace vma prio_tree with an interval tree
2012-10-09 16:22:39 +09:00
memblock.c
x86, mm: Trim memory in memblock to be page aligned
2012-10-24 11:52:21 -07:00
memcontrol.c
memcg: fix hotplugged memory zone oops
2012-11-16 14:33:04 -08:00
memory-failure.c
mm: soft offline: split thp at the beginning of soft_offline_page()
2012-11-30 08:51:18 -08:00
memory.c
mm: fix build warning for uninitialized value
2012-11-16 14:33:03 -08:00
memory_hotplug.c
revert "mm: fix-up zone present pages"
2012-11-16 14:33:04 -08:00
mempolicy.c
tmpfs: fix shared mempolicy leak
2012-12-06 11:56:43 -08:00
mempool.c
migrate.c
mm: memcg: fix compaction/migration failing due to memcg limits
2012-07-31 18:42:48 -07:00
mincore.c
mlock.c
mm, thp: fix mlock statistics
2012-10-09 16:23:03 +09:00
mm_init.c
mmap.c
mm: add anon_vma_lock to validate_mm()
2012-11-16 14:33:03 -08:00
mmu_context.c
mmu_notifier.c
mm/mmu_notifier: allocate mmu_notifier in advance
2012-10-25 14:37:53 -07:00
mmzone.c
memcg: fix hotplugged memory zone oops
2012-11-16 14:33:04 -08:00
mprotect.c
mremap.c
mm: move all mmu notifier invocations to be done outside the PT lock
2012-10-09 16:22:58 +09:00
msync.c
nobootmem.c
revert "mm: fix-up zone present pages"
2012-11-16 14:33:04 -08:00
nommu.c
mm: replace vma prio_tree with an interval tree
2012-10-09 16:22:39 +09:00
oom_kill.c
oom: remove deprecated oom_adj
2012-10-09 16:22:24 +09:00
page-writeback.c
CPU hotplug, writeback: Don't call writeback_set_ratelimit() too often during hotplug
2012-09-28 20:27:49 +08:00
page_alloc.c
Revert "revert "Revert "mm: remove __GFP_NO_KSWAPD""" and associated damage
2012-12-10 11:03:05 -08:00
page_cgroup.c
memcg: rename config variables
2012-07-31 18:42:43 -07:00
page_io.c
mm: add support for direct_IO to highmem pages
2012-07-31 18:42:47 -07:00
page_isolation.c
mm/page_alloc: refactor out __alloc_contig_migrate_alloc()
2012-10-09 16:22:52 +09:00
pagewalk.c
percpu-km.c
percpu-vm.c
percpu.c
sections: fix section conflicts in mm/percpu.c
2012-10-06 03:04:44 +09:00
pgtable-generic.c
thp: introduce pmdp_invalidate()
2012-10-09 16:22:29 +09:00
process_vm_access.c
quicklist.c
readahead.c
switch simple cases of fget_light to fdget
2012-09-26 22:20:08 -04:00
rmap.c
mm: fix XFS oops due to dirty pages without buffers on s390
2012-10-25 14:37:52 -07:00
shmem.c
tmpfs: fix shared mempolicy leak
2012-12-06 11:56:43 -08:00
slab.c
Merge branch 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux
2012-10-07 07:53:13 +09:00
slab.h
Revert "mm/sl[aou]b: Move sysfs_slab_add to common"
2012-09-05 12:07:44 +03:00
slab_common.c
mm, slab: release slab_mutex earlier in kmem_cache_destroy()
2012-10-10 09:25:08 +03:00
slob.c
Merge branch 'testing/driver-warnings' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc into fixes
2012-10-19 15:40:18 -07:00
slub.c
Merge branch 'slab/common-for-cgroups' into slab/for-linus
2012-10-03 09:56:37 +03:00
sparse-vmemmap.c
sparse.c
mm/vmemmap: fix wrong use of virt_to_page
2012-11-30 08:51:17 -08:00
swap.c
mm: remove vma arg from page_evictable
2012-10-09 16:22:55 +09:00
swap_state.c
mm: add support for a filesystem to activate swap files and use direct_IO for writing swap pages
2012-07-31 18:42:47 -07:00
swapfile.c
swapfile: fix name leak in swapoff
2012-11-16 14:33:04 -08:00
truncate.c
mm: use clear_page_mlock() in page_remove_rmap()
2012-10-09 16:22:56 +09:00
util.c
mm: Use __do_krealloc to do the krealloc job
2012-09-04 10:22:58 +03:00
vmalloc.c
mm: use %pK for /proc/vmallocinfo
2012-10-09 16:23:03 +09:00
vmscan.c
mm: vmscan: fix inappropriate zone congestion clearing
2012-12-08 08:41:18 -08:00
vmstat.c
mm: remove unevictable_pgs_mlockfreed
2012-10-09 16:22:59 +09:00