All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <87d1ryfd94.fsf@linux.vnet.ibm.com>

diff --git a/a/1.txt b/N1/1.txt
index ae1821e..1590abf 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -3,24 +3,20 @@ Balbir Singh <bsingharora@gmail.com> writes:
 >> Now we can't depend for mm_cpumask, a parallel find_linux_pte_hugepte
 >> can happen outside that. Now i had a variant for kick_all_cpus_sync that
 >> ignored idle cpus. But then that needs more verification.
->>=20
+>> 
 >> http://article.gmane.org/gmane.linux.ports.ppc.embedded/81105
 > Can be racy as a CPU moves from non-idle to idle
 >
 > In
 >
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0pmd_hugepage_update(vma->vm_mm, address, =
-pmdp, ~0UL, 0);
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0/*
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* This ensures that generic code th=
-at rely on IRQ disabling
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* to prevent a parallel THP split w=
-ork as expected.
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0*/
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0kick_all_cpus_sync();
+>> +     pmd_hugepage_update(vma->vm_mm, address, pmdp, ~0UL, 0);
+>> +     /*
+>> +      * This ensures that generic code that rely on IRQ disabling
+>> +      * to prevent a parallel THP split work as expected.
+>> +      */
+>> +     kick_all_cpus_sync();
 >
-> pmdp_invalidate()->pmd_hugepage_update() can still run in parallel with=
-=C2=A0
+> pmdp_invalidate()->pmd_hugepage_update() can still run in parallel with 
 > find_linux_pte_or_hugepte() and race.. Am I missing something?
 >
 
@@ -32,3 +28,9 @@ pmd_hugepage_update(_PAGE_PRESENT), we wait for the caller to finish the
 usage (via kick()). Or they bail out after finding _PAGE_PRESENT cleared.
 
 -aneesh
+
+--
+To unsubscribe, send a message with 'unsubscribe linux-mm' in
+the body to majordomo@kvack.org.  For more info on Linux MM,
+see: http://www.linux-mm.org/ .
+Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
diff --git a/a/content_digest b/N1/content_digest
index 6fd88d9..bdfcf5a 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -22,24 +22,20 @@
  ">> Now we can't depend for mm_cpumask, a parallel find_linux_pte_hugepte\n"
  ">> can happen outside that. Now i had a variant for kick_all_cpus_sync that\n"
  ">> ignored idle cpus. But then that needs more verification.\n"
- ">>=20\n"
+ ">> \n"
  ">> http://article.gmane.org/gmane.linux.ports.ppc.embedded/81105\n"
  "> Can be racy as a CPU moves from non-idle to idle\n"
  ">\n"
  "> In\n"
  ">\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0pmd_hugepage_update(vma->vm_mm, address, =\n"
- "pmdp, ~0UL, 0);\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0/*\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* This ensures that generic code th=\n"
- "at rely on IRQ disabling\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* to prevent a parallel THP split w=\n"
- "ork as expected.\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0*/\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0kick_all_cpus_sync();\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240pmd_hugepage_update(vma->vm_mm, address, pmdp, ~0UL, 0);\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240/*\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240\302\240* This ensures that generic code that rely on IRQ disabling\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240\302\240* to prevent a parallel THP split work as expected.\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240\302\240*/\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240kick_all_cpus_sync();\n"
  ">\n"
- "> pmdp_invalidate()->pmd_hugepage_update() can still run in parallel with=\n"
- "=C2=A0\n"
+ "> pmdp_invalidate()->pmd_hugepage_update() can still run in parallel with\302\240\n"
  "> find_linux_pte_or_hugepte() and race.. Am I missing something?\n"
  ">\n"
  "\n"
@@ -50,6 +46,12 @@
  "pmd_hugepage_update(_PAGE_PRESENT), we wait for the caller to finish the\n"
  "usage (via kick()). Or they bail out after finding _PAGE_PRESENT cleared.\n"
  "\n"
- -aneesh
+ "-aneesh\n"
+ "\n"
+ "--\n"
+ "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n"
+ "the body to majordomo@kvack.org.  For more info on Linux MM,\n"
+ "see: http://www.linux-mm.org/ .\n"
+ "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>"
 
-494cda7ff513dad6f73f1a432597926b9a0ebbc3238f90cbfd11b1a78ff277b9
+820c5c6bb49b1b0fdebe788a47600085086ac95914b9dde85ec3b8f3bcd9ed08

diff --git a/a/1.txt b/N2/1.txt
index ae1821e..3b43ab4 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -3,24 +3,20 @@ Balbir Singh <bsingharora@gmail.com> writes:
 >> Now we can't depend for mm_cpumask, a parallel find_linux_pte_hugepte
 >> can happen outside that. Now i had a variant for kick_all_cpus_sync that
 >> ignored idle cpus. But then that needs more verification.
->>=20
+>> 
 >> http://article.gmane.org/gmane.linux.ports.ppc.embedded/81105
 > Can be racy as a CPU moves from non-idle to idle
 >
 > In
 >
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0pmd_hugepage_update(vma->vm_mm, address, =
-pmdp, ~0UL, 0);
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0/*
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* This ensures that generic code th=
-at rely on IRQ disabling
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* to prevent a parallel THP split w=
-ork as expected.
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0*/
->> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0kick_all_cpus_sync();
+>> +     pmd_hugepage_update(vma->vm_mm, address, pmdp, ~0UL, 0);
+>> +     /*
+>> +      * This ensures that generic code that rely on IRQ disabling
+>> +      * to prevent a parallel THP split work as expected.
+>> +      */
+>> +     kick_all_cpus_sync();
 >
-> pmdp_invalidate()->pmd_hugepage_update() can still run in parallel with=
-=C2=A0
+> pmdp_invalidate()->pmd_hugepage_update() can still run in parallel with 
 > find_linux_pte_or_hugepte() and race.. Am I missing something?
 >
 
diff --git a/a/content_digest b/N2/content_digest
index 6fd88d9..249611c 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -22,24 +22,20 @@
  ">> Now we can't depend for mm_cpumask, a parallel find_linux_pte_hugepte\n"
  ">> can happen outside that. Now i had a variant for kick_all_cpus_sync that\n"
  ">> ignored idle cpus. But then that needs more verification.\n"
- ">>=20\n"
+ ">> \n"
  ">> http://article.gmane.org/gmane.linux.ports.ppc.embedded/81105\n"
  "> Can be racy as a CPU moves from non-idle to idle\n"
  ">\n"
  "> In\n"
  ">\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0pmd_hugepage_update(vma->vm_mm, address, =\n"
- "pmdp, ~0UL, 0);\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0/*\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* This ensures that generic code th=\n"
- "at rely on IRQ disabling\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* to prevent a parallel THP split w=\n"
- "ork as expected.\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0*/\n"
- ">> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0kick_all_cpus_sync();\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240pmd_hugepage_update(vma->vm_mm, address, pmdp, ~0UL, 0);\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240/*\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240\302\240* This ensures that generic code that rely on IRQ disabling\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240\302\240* to prevent a parallel THP split work as expected.\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240\302\240*/\n"
+ ">> +\302\240\302\240\302\240\302\240\302\240kick_all_cpus_sync();\n"
  ">\n"
- "> pmdp_invalidate()->pmd_hugepage_update() can still run in parallel with=\n"
- "=C2=A0\n"
+ "> pmdp_invalidate()->pmd_hugepage_update() can still run in parallel with\302\240\n"
  "> find_linux_pte_or_hugepte() and race.. Am I missing something?\n"
  ">\n"
  "\n"
@@ -52,4 +48,4 @@
  "\n"
  -aneesh
 
-494cda7ff513dad6f73f1a432597926b9a0ebbc3238f90cbfd11b1a78ff277b9
+7e754013c1947d2625facc027fe4e8451a3743931fa831e5f81b615a30370996

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.