]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jan 2014 18:53:51 +0000 (10:53 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jan 2014 18:53:51 +0000 (10:53 -0800)
added patches:
mm-numa-defer-tlb-flush-for-thp-migration-as-long-as-possible.patch

queue-3.12/mm-numa-defer-tlb-flush-for-thp-migration-as-long-as-possible.patch [new file with mode: 0644]
queue-3.12/mm-numa-guarantee-that-tlb_flush_pending-updates-are-visible-before-page-table-updates.patch
queue-3.12/series

diff --git a/queue-3.12/mm-numa-defer-tlb-flush-for-thp-migration-as-long-as-possible.patch b/queue-3.12/mm-numa-defer-tlb-flush-for-thp-migration-as-long-as-possible.patch
new file mode 100644 (file)
index 0000000..92fea8f
--- /dev/null
@@ -0,0 +1,54 @@
+From mgorman@suse.de  Tue Jan  7 10:51:22 2014
+From: Mel Gorman <mgorman@suse.de>
+Date: Tue,  7 Jan 2014 14:00:48 +0000
+Subject: mm: numa: defer TLB flush for THP migration as long as possible
+To: gregkh@linuxfoundation.org
+Cc: athorlton@sgi.com, riel@redhat.com, chegu_vinod@hp.com, Mel Gorman <mgorman@suse.de>, stable@vger.kernel.org
+Message-ID: <1389103248-17617-14-git-send-email-mgorman@suse.de>
+
+From: Mel Gorman <mgorman@suse.de>
+
+commit b0943d61b8fa420180f92f64ef67662b4f6cc493 upstream.
+
+THP migration can fail for a variety of reasons.  Avoid flushing the TLB
+to deal with THP migration races until the copy is ready to start.
+
+Signed-off-by: Mel Gorman <mgorman@suse.de>
+Reviewed-by: Rik van Riel <riel@redhat.com>
+Cc: Alex Thorlton <athorlton@sgi.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ mm/huge_memory.c |    7 -------
+ mm/migrate.c     |    3 +++
+ 2 files changed, 3 insertions(+), 7 deletions(-)
+
+--- a/mm/huge_memory.c
++++ b/mm/huge_memory.c
+@@ -1360,13 +1360,6 @@ int do_huge_pmd_numa_page(struct mm_stru
+       }
+       /*
+-       * The page_table_lock above provides a memory barrier
+-       * with change_protection_range.
+-       */
+-      if (mm_tlb_flush_pending(mm))
+-              flush_tlb_range(vma, haddr, haddr + HPAGE_PMD_SIZE);
+-
+-      /*
+        * Migrate the THP to the requested node, returns with page unlocked
+        * and pmd_numa cleared.
+        */
+--- a/mm/migrate.c
++++ b/mm/migrate.c
+@@ -1705,6 +1705,9 @@ int migrate_misplaced_transhuge_page(str
+               goto out_fail;
+       }
++      if (mm_tlb_flush_pending(mm))
++              flush_tlb_range(vma, mmun_start, mmun_end);
++
+       /* Prepare a page as a migration target */
+       __set_page_locked(new_page);
+       SetPageSwapBacked(new_page);
index 01cc24cfff0b43c7f345882f2b8e65c29f0ece7d..1415e32e0c6586e0b5ca55dc054a5f14d92f6e93 100644 (file)
@@ -21,6 +21,7 @@ Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
 Reviewed-by: Rik van Riel <riel@redhat.com>
 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
  include/linux/mm_types.h |    7 ++++++-
  1 file changed, 6 insertions(+), 1 deletion(-)
index 7e6a1a7663a963c50647180cb8d748d3c68ae4f2..6544e97a9430c933b8b4351a29caf35f9fbbd486 100644 (file)
@@ -118,6 +118,7 @@ mm-numa-clear-numa-hinting-information-on-mprotect.patch
 mm-numa-avoid-unnecessary-disruption-of-numa-hinting-during-migration.patch
 mm-fix-tlb-flush-race-between-migration-and-change_protection_range.patch
 mm-numa-guarantee-that-tlb_flush_pending-updates-are-visible-before-page-table-updates.patch
+mm-numa-defer-tlb-flush-for-thp-migration-as-long-as-possible.patch
 mm-mempolicy-correct-putback-method-for-isolate-pages-if-failed.patch
 mm-compaction-respect-ignore_skip_hint-in-update_pageblock_skip.patch
 mm-memory-failure.c-recheck-pagehuge-after-hugetlb-page-migrate-successfully.patch