BugLink: http://bugs.launchpad.net/bugs/1518457
On an AWS t2.micro instance (Xeon E5-2670, 991MiB of memory).
Occasionally (about once a day), kswapd0 falls into a busy loop and
spins on 100% CPU usage indefinitely. Reject to do the zone balance
when the memory is too small.
Signed-off-by: Dan Streetman <dan.streetman@canonical.com>
Signed-off-by: Gavin Guo <gavin.guo@canonical.com>
Tested-by: Jay Vosburgh <jay.vosburgh@canonical.com>
Acked-by: Leann Ogasawara <leann.ogasawara@canonical.com>
Acked-by: Brad Figg <brad.figg@canonical.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
{
unsigned long mark = high_wmark_pages(zone);
+ /*
+ * if zone is so small that watermarks are the same, don't bother trying
+ * to balance; kswapd would just spin continuously trying to balance it.
+ */
+ if (low_wmark_pages(zone) == mark)
+ return true;
+
if (!zone_watermark_ok_safe(zone, order, mark, classzone_idx))
return false;