David Rientjes
fb794bcbb4
mm, oom: remove unnecessary exit_state check
...
The oom killer scans each process and determines whether it is eligible
for oom kill or whether the oom killer should abort because of
concurrent memory freeing. It will abort when an eligible process is
found to have TIF_MEMDIE set, meaning it has already been oom killed and
we're waiting for it to exit.
Processes with task->mm == NULL should not be considered because they
are either kthreads or have already detached their memory and killing
them would not lead to memory freeing. That memory is only freed after
exit_mm() has returned, however, and not when task->mm is first set to
NULL.
Clear TIF_MEMDIE after exit_mm()'s mmput() so that an oom killed process
is no longer considered for oom kill, but only until exit_mm() has
returned. This was fragile in the past because it relied on
exit_notify() to be reached before no longer considering TIF_MEMDIE
processes.
Signed-off-by: David Rientjes <rientjes@google.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-08-06 18:01:21 -07:00
..
backing-dev.c
balloon_compaction.c
bootmem.c
cleancache.c
cma.c
mm, CMA: clean-up log message
2014-08-06 18:01:16 -07:00
compaction.c
mm, compaction: properly signal and act upon lock and need_sched() contention
2014-06-04 16:54:11 -07:00
debug-pagealloc.c
dmapool.c
mm/dmapool.c: reuse devres_release() to free resources
2014-06-04 16:54:08 -07:00
early_ioremap.c
fadvise.c
failslab.c
filemap.c
mm: describe mmap_sem rules for __lock_page_or_retry() and callers
2014-08-06 18:01:20 -07:00
filemap_xip.c
fremap.c
mm: mark remap_file_pages() syscall as deprecated
2014-06-06 16:08:17 -07:00
frontswap.c
swap: change swap_list_head to plist, add swap_avail_head
2014-06-04 16:54:07 -07:00
gup.c
mm: describe mmap_sem rules for __lock_page_or_retry() and callers
2014-08-06 18:01:20 -07:00
highmem.c
huge_memory.c
mm, thp: only collapse hugepages to nodes with affinity for zone_reclaim_mode
2014-08-06 18:01:20 -07:00
hugetlb.c
mm: fix potential infinite loop in dissolve_free_huge_pages()
2014-08-06 18:01:21 -07:00
hugetlb_cgroup.c
cgroup: replace cgroup_add_cftypes() with cgroup_add_legacy_cftypes()
2014-07-15 11:05:09 -04:00
hwpoison-inject.c
mm/hwpoison-inject.c: remove unnecessary null test before debugfs_remove_recursive
2014-08-06 18:01:19 -07:00
init-mm.c
internal.h
mm/internal.h: use nth_page
2014-08-06 18:01:16 -07:00
interval_tree.c
iov_iter.c
Kconfig
CMA: generalize CMA reserved area management functionality
2014-08-06 18:01:16 -07:00
Kconfig.debug
kmemcheck.c
kmemleak-test.c
mm/kmemleak-test.c: use pr_fmt for logging
2014-06-06 16:08:18 -07:00
kmemleak.c
mm: introduce kmemleak_update_trace()
2014-06-06 16:08:17 -07:00
ksm.c
sched: Remove proliferation of wait_on_bit() action functions
2014-07-16 15:10:39 +02:00
list_lru.c
maccess.c
madvise.c
mm: update the description for madvise_remove
2014-08-06 18:01:18 -07:00
Makefile
CMA: generalize CMA reserved area management functionality
2014-08-06 18:01:16 -07:00
memblock.c
mm/memblock.c: call kmemleak directly from memblock_(alloc|free)
2014-06-06 16:08:17 -07:00
memcontrol.c
mm: memcontrol: do not acquire page_cgroup lock for kmem pages
2014-08-06 18:01:17 -07:00
memory-failure.c
hwpoison: fix race with changing page during offlining
2014-08-06 18:01:19 -07:00
memory.c
mm: describe mmap_sem rules for __lock_page_or_retry() and callers
2014-08-06 18:01:20 -07:00
memory_hotplug.c
memory-hotplug: add zone_for_memory() for selecting zone for new memory
2014-08-06 18:01:21 -07:00
mempolicy.c
Merge branch 'for-3.16-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2014-07-10 11:38:23 -07:00
mempool.c
mm/mempool.c: update the kmemleak stack trace for mempool allocations
2014-06-06 16:08:17 -07:00
migrate.c
mm: fix direct reclaim writeback regression
2014-07-26 14:38:50 -07:00
mincore.c
mlock.c
mm: describe mmap_sem rules for __lock_page_or_retry() and callers
2014-08-06 18:01:20 -07:00
mm_init.c
mmap.c
mm: catch memory commitment underflow
2014-08-06 18:01:19 -07:00
mmu_context.c
mmu_notifier.c
mmzone.c
mprotect.c
mremap.c
msync.c
msync: fix incorrect fstart calculation
2014-07-03 09:21:53 -07:00
nobootmem.c
mm/memblock.c: call kmemleak directly from memblock_(alloc|free)
2014-06-06 16:08:17 -07:00
nommu.c
mm: nommu: per-thread vma cache fix
2014-06-23 16:47:43 -07:00
oom_kill.c
mm, oom: remove unnecessary exit_state check
2014-08-06 18:01:21 -07:00
page-writeback.c
mm, writeback: prevent race when calculating dirty limits
2014-08-06 18:01:21 -07:00
page_alloc.c
mm, thp: restructure thp avoidance of light synchronous migration
2014-08-06 18:01:21 -07:00
page_cgroup.c
page_io.c
fix __swap_writepage() compile failure on old gcc versions
2014-06-14 19:30:48 -05:00
page_isolation.c
pagewalk.c
percpu-km.c
percpu-vm.c
percpu.c
percpu: Use ALIGN macro instead of hand coding alignment calculation
2014-06-19 11:00:27 -04:00
pgtable-generic.c
process_vm_access.c
quicklist.c
readahead.c
mm/readahead.c: remove unused file_ra_state from count_history_pages
2014-08-06 18:01:15 -07:00
rmap.c
mm/rmap.c: fix pgoff calculation to handle hugepage correctly
2014-07-23 15:10:54 -07:00
shmem.c
mm/shmem.c: remove the unused gfp arg to shmem_add_to_page_cache()
2014-08-06 18:01:20 -07:00
slab.c
mm/slab.c: fix comments
2014-08-06 18:01:15 -07:00
slab.h
slab: convert last use of __FUNCTION__ to __func__
2014-08-06 18:01:15 -07:00
slab_common.c
mm: move slab related stuff from util.c to slab_common.c
2014-08-06 18:01:15 -07:00
slob.c
slab: get_online_mems for kmem_cache_{create,destroy,shrink}
2014-06-04 16:53:59 -07:00
slub.c
slub: remove kmemcg id from create_unique_id
2014-08-06 18:01:21 -07:00
sparse-vmemmap.c
sparse.c
swap.c
mm: pagemap: avoid unnecessary overhead when tracepoints are deactivated
2014-08-06 18:01:20 -07:00
swap_state.c
mm: page_alloc: convert hot/cold parameter and immediate callers to bool
2014-06-04 16:54:09 -07:00
swapfile.c
mm/swapfile.c: delete the "last_in_cluster < scan_base" loop in the body of scan_swap_map()
2014-06-04 16:54:12 -07:00
truncate.c
mm/fs: fix pessimization in hole-punching pagecache
2014-07-23 15:10:55 -07:00
util.c
mm: move slab related stuff from util.c to slab_common.c
2014-08-06 18:01:15 -07:00
vmacache.c
vmalloc.c
mm/vmalloc.c: clean up map_vm_area third argument
2014-08-06 18:01:19 -07:00
vmpressure.c
vmscan.c
mm: move zone->pages_scanned into a vmstat counter
2014-08-06 18:01:20 -07:00
vmstat.c
mm: vmscan: only update per-cpu thresholds for online CPU
2014-08-06 18:01:20 -07:00
workingset.c
zbud.c
mm/zbud.c: make size unsigned like unique callsite
2014-06-04 16:54:13 -07:00
zsmalloc.c
mm/vmalloc.c: clean up map_vm_area third argument
2014-08-06 18:01:19 -07:00
zswap.c
mm/zswap: NUMA aware allocation for zswap_dstmem
2014-06-04 16:54:14 -07:00