Files
ubports_kernel_google_msm/include/linux
KAMEZAWA Hiroyuki 4365a5676f oom-kill: fix NUMA constraint check with nodemask
Fix node-oriented allocation handling in oom-kill.c I myself think of this
as a bugfix not as an ehnancement.

In these days, things are changed as
  - alloc_pages() eats nodemask as its arguments, __alloc_pages_nodemask().
  - mempolicy don't maintain its own private zonelists.
  (And cpuset doesn't use nodemask for __alloc_pages_nodemask())

So, current oom-killer's check function is wrong.

This patch does
  - check nodemask, if nodemask && nodemask doesn't cover all
    node_states[N_HIGH_MEMORY], this is CONSTRAINT_MEMORY_POLICY.
  - Scan all zonelist under nodemask, if it hits cpuset's wall
    this faiulre is from cpuset.
And
  - modifies the caller of out_of_memory not to call oom if __GFP_THISNODE.
    This doesn't change "current" behavior. If callers use __GFP_THISNODE
    it should handle "page allocation failure" by itself.

  - handle __GFP_NOFAIL+__GFP_THISNODE path.
    This is something like a FIXME but this gfpmask is not used now.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hioryu@jp.fujitsu.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Christoph Lameter <cl@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-12-16 07:19:57 -08:00
..
2009-12-14 00:26:26 +01:00
2009-11-24 08:18:54 +02:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-09-23 07:39:29 -07:00
2009-10-27 16:47:55 -04:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-09-19 02:14:45 -04:00
2009-06-17 00:36:36 -04:00
2009-09-20 16:09:20 +05:30
2009-09-08 17:42:50 -07:00
2009-04-01 08:59:23 -07:00
2009-06-01 06:21:13 +00:00
2009-04-23 10:06:35 +01:00
2009-11-10 12:31:43 +01:00
2009-06-11 21:36:09 -04:00
2009-11-08 20:57:03 -08:00
2009-12-06 21:10:56 +01:00
2009-07-12 12:22:34 -07:00
2009-09-23 11:01:25 -07:00
2009-06-11 21:36:06 -04:00
2009-09-18 09:48:52 -07:00
2009-12-10 23:52:01 +00:00
2009-05-18 14:46:26 +01:00
2009-11-04 09:50:58 -08:00
2009-10-01 21:17:49 +02:00
2009-10-01 21:17:49 +02:00
2009-04-03 14:53:32 -07:00
2009-09-14 17:41:42 -07:00
2009-12-15 08:53:33 -08:00
2009-07-08 09:18:05 -07:00
2009-11-04 09:50:58 -08:00
2009-12-10 15:02:53 +01:00
2009-11-04 09:50:58 -08:00
2009-12-10 15:02:50 +01:00
2009-06-18 13:04:05 -07:00
2009-11-04 09:50:58 -08:00
2009-11-10 11:50:21 +01:00
2009-12-03 11:58:47 +00:00
2009-09-01 01:13:31 -07:00
2009-11-05 14:08:03 +01:00
2009-12-14 23:55:34 +01:00
2009-12-14 21:17:29 +01:00
2009-04-02 19:04:53 -07:00
2009-11-28 15:05:05 -05:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-06-29 08:59:10 +10:00
2009-11-04 09:50:58 -08:00
2009-12-02 23:38:13 -08:00
2009-09-23 07:39:41 -07:00
2009-11-04 09:50:58 -08:00
2009-06-18 13:03:56 -07:00
2009-09-26 10:17:19 -07:00
2009-04-21 13:41:48 -07:00
2009-04-21 13:41:48 -07:00
2009-10-18 18:52:53 -07:00
2009-08-29 15:53:00 +02:00
2009-09-30 00:32:06 -04:00
2009-09-23 07:39:58 -07:00
2009-12-11 15:18:03 -08:00
2009-09-19 13:13:17 -07:00
2009-09-26 10:17:19 -07:00
2009-12-15 08:53:20 -08:00
2009-12-03 09:32:17 +02:00
2009-12-09 17:14:38 +11:00
2009-04-06 16:06:26 +01:00
2009-06-23 20:21:39 +01:00
2009-07-30 16:03:45 +09:30
2009-12-15 08:53:36 -08:00
2009-04-28 07:37:28 +02:00
2009-10-01 21:17:49 +02:00
2009-06-16 19:47:48 -07:00
2009-09-22 07:17:35 -07:00
2009-06-16 08:40:20 +02:00
2009-12-15 08:53:20 -08:00
2009-04-29 17:32:35 -07:00
2009-07-08 09:31:56 -07:00
2009-06-11 21:36:02 -04:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-06-17 18:02:11 -07:00
2009-06-17 18:02:11 -07:00
2009-09-26 10:17:19 -07:00
2009-06-17 18:02:11 -07:00
2009-11-28 15:05:05 -05:00
2009-06-15 21:44:43 -07:00
2009-12-09 12:12:44 +02:00
2009-04-01 08:59:13 -07:00
2009-12-15 08:53:17 -08:00
2009-04-01 08:59:13 -07:00
2009-11-04 09:50:58 -08:00
2009-11-04 09:50:58 -08:00
2009-12-15 08:53:25 -08:00
2009-09-22 07:17:47 -07:00
2009-10-04 15:05:10 -07:00
2009-12-03 11:43:23 +00:00
2009-06-18 13:04:04 -07:00
2009-07-29 19:10:36 -07:00
2009-12-02 09:55:33 +01:00
2009-09-23 07:39:41 -07:00
2009-06-11 21:36:12 -04:00
2009-11-10 22:26:29 -08:00
2009-10-30 15:06:37 -07:00
2009-06-24 08:17:06 -04:00
2009-12-15 08:53:20 -08:00
2009-05-09 10:49:41 -04:00
2009-11-04 09:50:58 -08:00
2009-04-01 08:59:24 -07:00
2009-11-04 09:50:58 -08:00
2009-04-08 14:33:38 -07:00
2009-08-28 19:57:30 -04:00
2009-11-30 12:02:53 +09:00
2009-04-13 15:04:29 -07:00
2009-12-02 19:57:15 -08:00
2009-06-15 15:50:49 +02:00
2009-11-18 14:52:25 +01:00
2009-04-27 02:45:02 -07:00
2009-05-12 11:11:48 +02:00
2009-10-26 09:40:30 +01:00
2009-12-15 08:53:16 -08:00
2009-04-02 19:05:01 -07:00
2009-12-11 06:44:29 -05:00
2009-07-06 13:57:03 -07:00
2009-11-13 20:46:24 +01:00
2009-08-30 22:26:34 +02:00
2009-10-29 11:17:40 +11:00
2009-11-10 20:54:38 -08:00
2009-09-23 18:13:10 -07:00
2009-08-26 12:39:29 +01:00
2009-09-23 22:26:32 +09:30
2009-09-15 16:51:30 +02:00