Commit db33ec37 authored by Konstantin Khlebnikov's avatar Konstantin Khlebnikov Committed by Linus Torvalds
Browse files

doc: cgroup: update note about conditions when oom killer is invoked



Starting from v4.19 commit 29ef680a ("memcg, oom: move out_of_memory
back to the charge path") cgroup oom killer is no longer invoked only
from page faults.  Now it implements the same semantics as global OOM
killer: allocation context invokes OOM killer and keeps retrying until
success.

[akpm@linux-foundation.org: fixes per Randy]

Signed-off-by: default avatarKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Cc: Roman Gushchin <guro@fb.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Link: http://lkml.kernel.org/r/158894738928.208854.5244393925922074518.stgit@buzz


Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 490741ab
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -1170,6 +1170,13 @@ PAGE_SIZE multiple when read back.
	Under certain circumstances, the usage may go over the limit
	temporarily.

	In default configuration regular 0-order allocations always
	succeed unless OOM killer chooses current task as a victim.

	Some kinds of allocations don't invoke the OOM killer.
	Caller could retry them differently, return into userspace
	as -ENOMEM or silently ignore in cases like disk readahead.

	This is the ultimate protection mechanism.  As long as the
	high limit is used and monitored properly, this limit's
	utility is limited to providing the final safety net.
@@ -1226,17 +1233,9 @@ PAGE_SIZE multiple when read back.
		The number of time the cgroup's memory usage was
		reached the limit and allocation was about to fail.

		Depending on context result could be invocation of OOM
		killer and retrying allocation or failing allocation.

		Failed allocation in its turn could be returned into
		userspace as -ENOMEM or silently ignored in cases like
		disk readahead.  For now OOM in memory cgroup kills
		tasks iff shortage has happened inside page fault.

		This event is not raised if the OOM killer is not
		considered as an option, e.g. for failed high-order
		allocations.
		allocations or if caller asked to not retry attempts.

	  oom_kill
		The number of processes belonging to this cgroup