Files
kernel_xiaomi_sm8250/include/linux
David Rientjes d773ed6b85 mm: test and set zone reclaim lock before starting reclaim
Introduces new zone flag interface for testing and setting flags:

	int zone_test_and_set_flag(struct zone *zone, zone_flags_t flag)

Instead of setting and clearing ZONE_RECLAIM_LOCKED each time shrink_zone() is
called, this flag is test and set before starting zone reclaim.  Zone reclaim
starts in __alloc_pages() when a zone's watermark fails and the system is in
zone_reclaim_mode.  If it's already in reclaim, there's no need to start again
so it is simply considered full for that allocation attempt.

There is a change of behavior with regard to concurrent zone shrinking.  It is
now possible for try_to_free_pages() or kswapd to already be shrinking a
particular zone when __alloc_pages() starts zone reclaim.  In this case, it is
possible for two concurrent threads to invoke shrink_zone() for a single zone.

This change forbids a zone to be in zone reclaim twice, which was always the
behavior, but allows for concurrent try_to_free_pages() or kswapd shrinking
when starting zone reclaim.

Cc: Andrea Arcangeli <andrea@suse.de>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-17 08:42:46 -07:00
..
2007-10-09 19:59:16 -07:00
2007-09-24 07:15:48 +02:00
2007-10-10 16:53:11 -07:00
2007-10-15 17:56:36 -07:00
2007-10-10 16:51:59 -07:00
2007-10-10 16:49:02 -07:00
2007-10-17 08:42:45 -07:00
2007-10-16 09:43:09 -07:00
2007-10-16 09:42:58 -07:00
2007-10-16 09:43:13 -07:00
2007-10-16 09:43:09 -07:00
2007-10-16 09:42:58 -07:00
2007-10-13 23:56:33 +02:00
2007-10-16 11:21:00 +02:00
2007-10-16 22:29:58 +02:00
2007-10-10 16:51:59 -07:00
2007-10-10 16:52:04 -07:00
2007-10-14 12:41:52 -07:00
2007-10-17 08:42:45 -07:00
2007-10-16 09:43:01 -07:00
2007-10-15 17:56:36 -07:00
2007-10-16 09:42:49 -07:00
2007-10-16 09:43:02 -07:00
2007-10-12 14:51:12 -07:00
2007-10-16 09:43:10 -07:00
2007-10-13 10:18:29 +02:00
2007-10-16 11:14:12 +02:00
2007-10-10 16:54:03 -07:00
2007-10-16 09:43:03 -07:00
2007-10-16 09:43:03 -07:00
2007-10-11 22:11:12 +02:00
2007-10-09 17:15:11 -04:00
2007-10-16 09:43:02 -07:00
2007-10-16 09:43:09 -07:00
2007-10-17 08:42:44 -07:00
2007-10-17 08:42:45 -07:00
2007-10-16 09:42:53 -07:00
2007-10-17 08:42:45 -07:00
2007-10-16 09:43:17 -07:00
2007-10-16 09:42:50 -07:00
2007-09-20 13:19:59 -07:00
2007-10-12 14:51:12 -07:00
2007-10-15 12:59:43 -07:00
2007-09-19 11:24:18 -07:00
2007-10-17 08:42:45 -07:00