David Rientjes
4167e9b2cf
mm: remove GFP_THISNODE
...
NOTE: this is not about __GFP_THISNODE, this is only about GFP_THISNODE.
GFP_THISNODE is a secret combination of gfp bits that have different
behavior than expected. It is a combination of __GFP_THISNODE,
__GFP_NORETRY, and __GFP_NOWARN and is special-cased in the page
allocator slowpath to fail without trying reclaim even though it may be
used in combination with __GFP_WAIT.
An example of the problem this creates: commit e97ca8e5b8 ("mm: fix
GFP_THISNODE callers and clarify") fixed up many users of GFP_THISNODE
that really just wanted __GFP_THISNODE. The problem doesn't end there,
however, because even it was a no-op for alloc_misplaced_dst_page(),
which also sets __GFP_NORETRY and __GFP_NOWARN, and
migrate_misplaced_transhuge_page(), where __GFP_NORETRY and __GFP_NOWAIT
is set in GFP_TRANSHUGE. Converting GFP_THISNODE to __GFP_THISNODE is a
no-op in these cases since the page allocator special-cases
__GFP_THISNODE && __GFP_NORETRY && __GFP_NOWARN.
It's time to just remove GFP_THISNODE entirely. We leave __GFP_THISNODE
to restrict an allocation to a local node, but remove GFP_THISNODE and
its obscurity. Instead, we require that a caller clear __GFP_WAIT if it
wants to avoid reclaim.
This allows the aforementioned functions to actually reclaim as they
should. It also enables any future callers that want to do
__GFP_THISNODE but also __GFP_NORETRY && __GFP_NOWARN to reclaim. The
rule is simple: if you don't want to reclaim, then don't set __GFP_WAIT.
Aside: ovs_flow_stats_update() really wants to avoid reclaim as well, so
it is unchanged.
Signed-off-by: David Rientjes <rientjes@google.com >
Acked-by: Vlastimil Babka <vbabka@suse.cz >
Cc: Christoph Lameter <cl@linux.com >
Acked-by: Pekka Enberg <penberg@kernel.org >
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com >
Acked-by: Johannes Weiner <hannes@cmpxchg.org >
Cc: Mel Gorman <mgorman@suse.de >
Cc: Pravin Shelar <pshelar@nicira.com >
Cc: Jarno Rajahalme <jrajahalme@nicira.com >
Cc: Li Zefan <lizefan@huawei.com >
Cc: Greg Thelen <gthelen@google.com >
Cc: Tejun Heo <tj@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2015-04-14 16:49:03 -07:00
..
2015-02-10 10:23:15 +00:00
2015-01-29 10:54:43 +02:00
2014-08-06 18:01:23 -07:00
2014-12-07 21:22:09 +01:00
2015-02-19 13:31:40 +03:00
2015-02-03 11:06:11 -08:00
2014-10-15 20:31:05 +05:30
2014-09-22 16:48:47 +09:00
2015-01-15 17:23:22 +01:00
2015-03-29 16:17:10 +01:00
2015-02-01 11:50:35 -08:00
2015-04-11 11:17:28 +02:00
2014-11-24 17:24:08 -05:00
2015-04-13 17:07:21 -07:00
2015-03-02 15:27:19 -05:00
2015-04-09 09:08:15 +02:00
2015-02-18 08:01:44 -08:00
2015-02-11 10:28:45 -08:00
2015-03-05 10:08:14 +01:00
2015-03-27 12:19:37 +01:00
2015-04-06 17:46:27 +02:00
2015-04-10 19:16:03 +01:00
2015-02-16 17:56:05 -08:00
2015-04-11 23:09:18 +01:00
2015-01-29 10:49:28 +02:00
2015-03-31 14:15:08 -04:00
2015-04-07 11:17:34 +02:00
2015-03-18 17:27:03 +01:00
2015-02-05 15:09:26 +01:00
2015-01-28 18:45:23 -05:00
2012-10-08 13:50:20 +10:30
2013-09-24 10:35:17 +01:00
2013-12-02 11:24:18 +00:00
2013-03-12 13:59:14 -07:00
2015-01-28 18:45:23 -05:00
2015-03-27 11:59:22 -04:00
2012-12-02 00:05:12 +00:00
2014-08-13 10:31:57 +02:00
2012-03-16 10:38:24 -04:00
2015-02-17 15:27:47 -08:00
2009-04-01 08:59:23 -07:00
2010-12-06 15:58:43 -05:00
2015-02-17 16:12:34 -08:00
2014-05-27 01:29:01 +02:00
2012-09-10 11:13:16 -07:00
2015-02-17 21:33:27 +01:00
2015-02-05 09:30:43 -07:00
2015-02-13 21:21:39 -08:00
2014-11-16 09:55:39 +01:00
2015-04-08 09:41:41 -07:00
2015-02-12 14:13:23 -08:00
2015-02-11 11:24:14 -07:00
2014-09-04 22:04:42 -04:00
2013-02-21 17:22:16 -08:00
2014-01-23 16:36:56 -08:00
2014-11-07 11:45:00 -08:00
2014-07-24 21:53:47 +10:00
2015-01-20 14:02:58 -07:00
2015-04-14 16:49:03 -07:00
2015-02-18 09:40:07 -08:00
2015-03-11 15:56:59 -07:00
2013-12-04 17:19:44 +01:00
2015-04-03 08:44:37 +02:00
2015-03-13 08:07:08 +01:00
2014-01-21 20:18:26 -08:00
2015-02-11 17:06:04 -08:00
2015-01-27 09:37:53 +00:00
2015-02-13 21:21:42 -08:00
2015-02-13 21:21:42 -08:00
2015-02-13 21:21:40 -08:00
2015-03-27 09:42:01 +01:00
2013-11-15 09:32:21 +09:00
2014-07-03 11:32:43 +01:00
2014-05-28 13:37:21 -07:00
2013-05-20 12:27:59 -07:00
2008-06-04 14:56:12 +01:00
2013-12-29 15:25:48 +01:00
2013-12-02 20:43:14 +01:00
2015-02-04 10:42:55 -08:00
2014-11-07 11:45:00 -08:00
2015-01-23 23:06:44 +01:00
2015-04-03 13:15:50 +02:00
2015-02-13 21:21:39 -08:00
2015-01-20 14:44:19 +11:00
2015-02-12 18:54:15 -08:00
2015-02-22 11:38:38 -05:00
2013-05-12 14:16:21 +02:00
2015-02-17 12:21:51 -05:00
2013-08-18 17:39:55 -07:00
2010-08-04 11:00:45 +02:00
2014-09-23 22:53:15 -07:00
2015-01-30 17:56:40 +09:00
2014-12-19 22:55:06 +01:00
2015-02-27 14:53:16 -05:00
2015-03-25 14:53:58 +01:00
2014-01-21 16:19:41 -08:00
2015-02-02 16:55:43 -08:00
2015-04-07 16:45:33 -07:00
2015-01-21 19:21:30 +01:00
2014-10-03 14:55:48 -07:00
2014-09-29 00:04:55 -04:00
2015-04-01 12:46:22 +01:00
2008-01-28 23:21:18 +01:00
2015-01-09 15:44:19 +01:00
2014-04-03 16:21:06 -07:00
2012-10-13 10:46:48 +01:00
2015-01-02 15:46:41 -05:00
2014-12-08 21:07:10 -05:00
2014-01-16 10:23:02 +10:30
2015-02-05 14:35:17 +01:00
2015-02-11 17:04:48 -08:00
2012-10-13 10:46:48 +01:00
2015-01-15 13:33:41 +02:00
2013-09-26 15:06:58 -07:00
2009-06-18 19:50:21 +08:00
2012-10-13 10:46:48 +01:00
2014-01-21 23:17:20 -08:00
2015-01-25 23:17:28 -05:00
2009-12-17 10:58:17 -05:00
2013-09-12 10:12:47 -07:00
2015-04-06 17:50:59 -04:00
2015-02-10 14:30:28 -08:00
2015-02-12 08:37:41 -08:00
2014-10-09 22:25:52 -04:00
2015-01-16 17:04:25 -05:00
2006-09-30 01:47:55 +02:00
2015-04-14 16:49:03 -07:00
2015-02-18 15:08:33 +01:00
2013-10-11 17:21:14 +11:00
2015-01-27 10:19:12 -02:00
2013-04-30 10:09:06 +02:00
2015-02-17 13:34:44 +01:00
2015-03-13 23:15:51 +01:00
2015-01-27 10:09:14 +01:00
2015-01-23 12:13:20 +01:00
2015-02-12 18:54:08 -08:00
2015-02-11 17:06:01 -08:00
2015-01-25 09:18:00 -08:00
2012-10-13 10:46:48 +01:00
2015-02-21 12:41:50 -08:00
2015-01-27 11:09:13 +01:00
2015-01-18 00:23:57 -05:00
2015-02-05 14:33:28 -08:00
2008-07-09 12:09:28 -04:00
2015-02-13 21:21:41 -08:00
2015-03-05 09:23:12 +01:00
2005-04-16 15:20:36 -07:00
2014-05-14 16:40:04 -07:00
2012-11-10 00:40:24 -08:00
2015-04-08 23:28:28 +02:00
2012-10-09 16:22:40 +09:00
2012-10-09 16:22:39 +09:00
2015-01-19 16:11:59 +00:00
2015-01-19 14:55:22 +01:00
2012-12-09 00:20:28 -05:00
2015-02-02 19:28:04 -08:00
2015-03-23 10:55:21 +01:00
2015-04-11 11:17:28 +02:00
2015-03-04 21:42:19 +01:00
2015-02-19 01:08:42 +01:00
2015-01-15 10:34:54 +01:00
2015-01-15 10:34:54 +01:00
2015-04-09 09:40:24 +02:00
2015-03-12 18:46:08 -07:00
2015-02-19 12:39:02 -06:00
2007-07-31 15:39:40 -07:00
2012-10-13 10:46:48 +01:00
2014-12-13 13:33:07 +01:00
2015-02-12 18:54:13 -08:00
2014-10-14 15:05:34 -04:00
2015-02-13 21:21:36 -08:00
2015-02-17 14:34:51 -08:00
2012-07-21 10:34:00 -07:00
2010-03-15 15:29:39 +01:00
2014-04-25 12:00:49 -07:00
2015-01-13 16:10:16 +00:00
2015-01-24 10:11:12 +01:00
2015-04-08 10:47:02 +02:00
2015-03-31 09:45:50 -06:00
2015-01-26 14:59:08 -08:00
2015-01-26 14:59:08 -08:00
2015-02-11 16:47:46 +10:30
2015-04-13 16:42:16 -07:00
2013-01-06 01:11:25 -08:00
2009-06-16 19:47:57 -07:00
2015-02-12 18:54:10 -08:00
2015-02-04 11:25:51 +01:00
2015-01-25 23:16:29 -05:00
2013-03-22 22:17:36 -06:00
2014-10-08 10:39:41 +05:30
2012-03-16 10:38:24 -04:00
2013-12-11 15:52:34 +01:00
2014-03-18 19:19:41 -04:00
2015-01-12 05:04:10 -08:00
2015-02-12 18:54:09 -08:00
2015-04-14 16:49:00 -07:00
2014-10-22 16:14:04 -06:00
2015-02-12 18:54:08 -08:00
2014-05-27 17:43:11 -07:00
2015-04-14 16:49:02 -07:00
2015-04-14 16:49:01 -07:00
2014-10-09 22:25:58 -04:00
2015-04-07 16:45:33 -07:00
2015-02-17 17:41:19 -08:00
2015-03-18 10:46:39 -07:00
2015-03-12 18:46:08 -07:00
2014-10-14 02:18:28 +02:00
2009-04-01 07:38:54 -04:00
2014-01-27 21:02:39 -08:00
2015-02-14 11:32:59 -08:00
2015-02-01 23:16:33 -08:00
2015-04-06 16:12:49 -04:00
2015-02-12 10:39:41 -08:00
2015-02-03 11:06:34 -08:00
2015-03-03 13:02:29 -05:00
2015-02-03 11:06:52 -08:00
2015-02-03 11:06:45 -08:00
2015-02-18 13:11:09 -08:00
2015-04-14 16:48:59 -07:00
2012-12-11 17:22:27 -08:00
2015-02-13 21:21:39 -08:00
2014-07-29 18:08:50 -07:00
2015-02-19 16:15:37 -07:00
2015-03-03 14:42:56 -06:00
2015-01-15 17:23:17 +01:00
2015-03-03 14:42:55 -06:00
2015-03-03 14:42:57 -06:00
2015-03-13 09:45:24 -05:00
2015-02-11 17:06:03 -08:00
2015-01-14 15:07:32 +01:00
2013-10-30 12:02:58 +08:00
2015-02-11 17:06:02 -08:00
2015-02-11 17:06:07 -08:00
2015-04-14 16:49:01 -07:00
2014-01-23 16:36:55 -08:00
2012-10-13 10:46:48 +01:00
2013-03-01 23:51:07 -05:00
2015-03-10 15:33:23 -05:00
2015-04-08 16:25:25 -05:00
2015-04-09 14:20:11 -05:00
2015-04-10 08:27:18 -05:00
2014-11-21 11:19:15 -05:00
2015-02-16 14:58:12 -08:00
2015-01-09 11:12:28 +01:00
2014-12-16 15:02:23 -05:00
2015-01-27 00:16:51 -08:00
2015-01-25 23:17:28 -05:00
2014-11-06 15:16:02 -08:00
2015-02-03 22:56:53 +01:00
2014-12-12 15:26:48 -08:00
2015-02-03 22:59:25 +01:00
2015-02-02 10:11:25 -08:00
2015-03-13 23:15:52 +01:00
2013-08-19 21:22:34 -07:00
2011-03-31 11:26:23 -03:00
2015-02-12 18:54:15 -08:00
2015-01-16 16:01:10 -08:00
2015-01-16 16:01:10 -08:00
2014-03-21 14:21:13 -04:00
2008-09-02 19:21:38 -07:00
2015-01-30 12:51:21 +01:00
2015-01-30 12:50:32 +01:00
2010-02-08 18:19:41 -06:00
2014-08-24 18:36:01 -07:00
2010-02-10 17:47:17 -08:00
2015-02-17 14:34:52 -08:00
2015-01-15 23:34:34 -08:00
2015-01-15 23:34:34 -08:00
2015-01-15 23:34:34 -08:00
2015-01-27 13:13:04 +00:00
2014-10-20 10:11:29 +02:00
2015-02-05 15:09:25 +01:00
2012-10-13 10:46:48 +01:00
2015-02-27 16:06:02 -05:00
2014-11-10 16:45:43 -05:00
2015-02-16 17:56:03 -08:00
2006-07-13 13:21:35 -07:00
2015-04-03 08:18:24 +02:00
2014-06-21 22:05:30 +02:00
2015-04-13 16:47:11 -07:00
2012-10-13 10:46:48 +01:00
2015-01-25 09:17:57 -08:00
2010-10-22 10:20:06 -07:00
2015-02-13 21:21:39 -08:00
2015-02-13 21:21:39 -08:00
2015-02-24 08:44:16 +01:00
2015-02-02 10:11:27 -08:00
2015-03-07 03:39:55 +01:00
2015-01-09 14:25:39 -08:00
2015-02-12 18:54:09 -08:00
2015-03-11 23:51:18 -04:00
2015-02-12 18:54:09 -08:00
2015-04-14 16:48:59 -07:00
2015-02-13 21:21:41 -08:00
2015-01-22 15:10:56 +01:00
2015-02-04 01:34:15 -05:00
2005-04-16 15:20:36 -07:00
2015-01-06 11:04:27 -08:00
2008-05-26 16:15:32 +02:00
2014-12-13 12:42:48 -08:00
2006-12-07 02:14:08 +01:00
2012-10-13 10:46:48 +01:00
2015-03-17 09:25:28 +01:00
2015-02-12 18:54:13 -08:00
2015-02-13 21:21:35 -08:00
2009-04-10 15:48:52 +02:00
2015-02-13 23:49:36 +01:00
2015-02-11 17:06:00 -08:00
2015-02-12 18:54:08 -08:00
2015-01-27 09:38:00 +00:00
2011-03-15 00:43:46 +01:00
2014-08-08 15:57:24 -07:00
2015-03-25 13:28:58 +01:00
2014-11-17 10:28:04 -08:00
2012-09-13 16:47:34 +02:00
2015-02-08 01:03:13 -08:00
2015-02-24 14:40:42 -04:00
2015-02-03 15:48:51 -08:00
2015-04-03 08:44:37 +02:00
2015-01-22 12:28:02 +01:00
2015-03-27 09:45:07 +01:00
2015-04-03 08:18:34 +02:00
2012-08-21 16:28:31 +02:00
2014-07-18 11:49:57 +02:00
2012-10-09 16:22:32 +09:00
2010-11-29 08:55:25 +11:00
2013-03-15 00:36:09 -04:00
2014-11-19 22:01:15 -05:00
2014-08-06 13:03:43 +02:00
2015-02-07 19:34:25 -05:00
2015-02-02 10:11:28 -08:00
2015-02-12 18:54:13 -08:00
2013-04-15 21:23:03 +01:00
2014-02-12 15:00:34 -08:00
2015-02-17 22:21:11 -05:00
2015-04-07 12:58:35 -05:00
2005-04-16 15:20:36 -07:00
2015-03-17 09:25:28 +01:00
2015-01-23 14:57:10 +10:30
2015-03-12 18:46:08 -07:00
2015-03-06 17:03:22 -08:00
2014-06-04 16:53:57 -07:00
2015-02-04 01:34:14 -05:00
2015-02-02 10:09:54 -08:00
2015-02-12 14:30:53 -08:00
2015-03-09 09:22:28 -04:00
2015-03-17 12:23:32 -04:00
2015-02-12 18:54:12 -08:00
2015-02-12 18:54:12 -08:00