public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sasha.levin@oracle.com>
To: stable@vger.kernel.org, stable-commits@vger.kernel.org
Cc: Hugh Dickins <hughd@google.com>, Vlastimil Babka <vbabka@suse.cz>,
	Michal Hocko <mhocko@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Sasha Levin <sasha.levin@oracle.com>
Subject: [added to the 3.18 stable tree] mm, cma: prevent nr_isolated_* counters from going negative
Date: Thu, 19 May 2016 00:15:29 -0400	[thread overview]
Message-ID: <1463631350-32182-40-git-send-email-sasha.levin@oracle.com> (raw)
In-Reply-To: <1463631350-32182-1-git-send-email-sasha.levin@oracle.com>

From: Hugh Dickins <hughd@google.com>

This patch has been added to the 3.18 stable tree. If you have any
objections, please let us know.

===============

[ Upstream commit 14af4a5e9b26ad251f81c174e8a43f3e179434a5 ]

/proc/sys/vm/stat_refresh warns nr_isolated_anon and nr_isolated_file go
increasingly negative under compaction: which would add delay when
should be none, or no delay when should delay.  The bug in compaction
was due to a recent mmotm patch, but much older instance of the bug was
also noticed in isolate_migratepages_range() which is used for CMA and
gigantic hugepage allocations.

The bug is caused by putback_movable_pages() in an error path
decrementing the isolated counters without them being previously
incremented by acct_isolated().  Fix isolate_migratepages_range() by
removing the error-path putback, thus reaching acct_isolated() with
migratepages still isolated, and leaving putback to caller like most
other places do.

Fixes: edc2ca612496 ("mm, compaction: move pageblock checks up from isolate_migratepages_range()")
[vbabka@suse.cz: expanded the changelog]
Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
---
 mm/compaction.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/mm/compaction.c b/mm/compaction.c
index b47f08e..8d010df 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -784,16 +784,8 @@ isolate_migratepages_range(struct compact_control *cc, unsigned long start_pfn,
 		pfn = isolate_migratepages_block(cc, pfn, block_end_pfn,
 							ISOLATE_UNEVICTABLE);
 
-		/*
-		 * In case of fatal failure, release everything that might
-		 * have been isolated in the previous iteration, and signal
-		 * the failure back to caller.
-		 */
-		if (!pfn) {
-			putback_movable_pages(&cc->migratepages);
-			cc->nr_migratepages = 0;
+		if (!pfn)
 			break;
-		}
 
 		if (cc->nr_migratepages == COMPACT_CLUSTER_MAX)
 			break;
-- 
2.5.0


  parent reply	other threads:[~2016-05-19  4:18 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-19  4:14 [added to the 3.18 stable tree] Revert "usb: hub: do not clear BOS field during reset device" Sasha Levin
2016-05-19  4:14 ` [added to the 3.18 stable tree] timers: Use proper base migration in add_timer_on() Sasha Levin
2016-05-19  4:14 ` [added to the 3.18 stable tree] ASoC: rt5640: Correct the digital interface data select Sasha Levin
2016-05-19  4:14 ` [added to the 3.18 stable tree] regulator: s2mps11: Fix invalid selector mask and voltages for buck9 Sasha Levin
2016-05-19  4:14 ` [added to the 3.18 stable tree] libahci: save port map for forced port map Sasha Levin
2016-05-19  4:14 ` [added to the 3.18 stable tree] ata: ahci-platform: Add ports-implemented DT bindings Sasha Levin
2016-05-19  4:14 ` [added to the 3.18 stable tree] regmap: spmi: Fix regmap_spmi_ext_read in multi-byte case Sasha Levin
2016-05-19  4:14 ` [added to the 3.18 stable tree] iio: ak8975: Fix NULL pointer exception on early interrupt Sasha Levin
2016-05-19  4:14 ` [added to the 3.18 stable tree] efi: Fix out-of-bounds read in variable_matches() Sasha Levin
2016-05-19  4:14 ` [added to the 3.18 stable tree] USB: serial: cp210x: add ID for Link ECU Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] USB: serial: cp210x: add Straizona Focusers device ids Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] [media] v4l2-dv-timings.h: fix polarity for 4k formats Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] MD: make bio mergeable Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ALSA: hda - Add dock support for ThinkPad X260 Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] workqueue: fix ghost PENDING flag while doing MQ IO Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] drm/dp/mst: Get validated port ref in drm_dp_update_payload_part1() Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] drm/dp/mst: Restore primary hub guid on resume Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] cxl: Keep IRQ mappings on context teardown Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] drm/i915: Read out the power sequencer port assignment on resume on vlv/chv Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] drm/i915/ddi: Fix eDP VDD handling during booting and suspend/resume Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ARM: SoCFPGA: Fix secondary CPU startup in thumb2 kernel Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] IB/security: Restrict use of the write() interface Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] mm/huge_memory: replace VM_NO_THP VM_BUG_ON with actual VMA check Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ALSA: usb-audio: Quirk for yet another Phoenix Audio devices (v2) Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] EDAC: i7core, sb_edac: Don't return NOTIFY_BAD from mce_decoder callback Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] atomic_open(): fix the handling of create_error Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] Drivers: hv: ring_buffer.c: fix comment style Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] Drivers: hv_vmbus: Fix signal to host condition Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] Drivers: hv: vmbus: Fix signaling logic in hv_need_to_signal_on_read() Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] powerpc: Fix bad inline asm constraint in create_zero_mask() Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] Minimal fix-up of bad hashing behavior of hash_64() Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] tracing: Don't display trigger file for events that can't be enabled Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] drm/radeon: make sure vertical front porch is at least 1 Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] MAINTAINERS: Remove asterisk from EFI directory names Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ACPICA: Dispatcher: Update thread ID for recursive method calls Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] crypto: hash - Fix page length clamping in hash walk Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] x86/sysfb_efi: Fix valid BAR address range check Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] fs/pnode.c: treat zero mnt_group_id-s as unequal Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] propogate_mnt: Handle the first propogated copy being a slave Sasha Levin
2016-05-19  4:15 ` Sasha Levin [this message]
2016-05-19  4:15 ` [added to the 3.18 stable tree] x86/tsc: Read all ratio bits from MSR_PLATFORM_INFO Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] parisc: Fix ptrace syscall number and return value modification Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] parisc: fix a bug when syscall number of tracee is __NR_Linux_syscalls Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] get_rock_ridge_filename(): handle malformed NM entries Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ALSA: hda - Fix bass pin fixup for ASUS N550JX Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ALSA: hda - Apply fix for white noise on Asus N550JV, too Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ALSA: hda - Fix white noise on Asus UX501VW headset Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] Input: max8997-haptic - fix NULL pointer dereference Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] drm/i915: Bail out of pipe config compute loop on LPT Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ALSA: hda - Asus N750JV external subwoofer fixup Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ALSA: hda - Fix white noise on Asus N750JV headphone Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ALSA: hda - Fix subwoofer pin on ASUS N751 and N551 Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ALSA: usb-audio: Yet another Phoneix Audio device quirk Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] tools lib traceevent: Free filter tokens in process_filter() Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] tools lib traceevent: Do not reassign parg after collapse_tree() Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] workqueue: fix rebind bound workers warning Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ocfs2: fix SGID not inherited issue Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ocfs2: dereferencing freed pointers in ocfs2_reflink() Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ocfs2: revert using ocfs2_acl_chmod to avoid inode cluster lock hang Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] ocfs2: fix posix_acl_create deadlock Sasha Levin
2016-05-19  4:15 ` [added to the 3.18 stable tree] nf_conntrack: avoid kernel pointer value leak in slab name Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1463631350-32182-40-git-send-email-sasha.levin@oracle.com \
    --to=sasha.levin@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=hughd@google.com \
    --cc=mhocko@kernel.org \
    --cc=stable-commits@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=vbabka@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox