* [PATCH 1/1] oom: stop allocating user memory if TIF_MEMDIE is set
@ 2007-06-06 18:59 Ethan Solomita
0 siblings, 0 replies; only message in thread
From: Ethan Solomita @ 2007-06-06 18:59 UTC (permalink / raw)
To: Andrew Morton, linux-mm
get_user_pages() can try to allocate a nearly unlimited amount of memory on behalf of a user process, even if that process has been OOM killed. The OOM kill occurs upon return to user space via a SIGKILL, but get_user_pages() will try allocate all its memory before returning. Change get_user_pages() to check for TIF_MEMDIE, and if set then return immediately.
Signed-off-by: Ethan Solomita <solo@google.com>
---
diff -uprN -X orig/Documentation/dontdiff orig/mm/memory.c new/mm/memory.c
--- orig/mm/memory.c 2007-06-05 19:01:46.000000000 -0700
+++ new/mm/memory.c 2007-06-05 19:07:15.000000000 -0700
@@ -1084,6 +1084,15 @@ int get_user_pages(struct task_struct *t
do {
struct page *page;
+ /*
+ * If tsk is ooming, cut off its access to large memory
+ * allocations. It has a pending SIGKILL, but it can't
+ * be processed until returning to user space.
+ */
+
+ if (unlikely(test_tsk_thread_flag(tsk, TIF_MEMDIE)))
+ return -ENOMEM;
+
if (write)
foll_flags |= FOLL_WRITE;
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-06-06 18:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-06 18:59 [PATCH 1/1] oom: stop allocating user memory if TIF_MEMDIE is set Ethan Solomita
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.