[PATCH] powerpc/mm: Use VM_WARN_ONCE() for irqs disabled check

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE3719d

3 messages, 2 authors, 2016-06-28 · open the first message on its own page

[PATCH] powerpc/mm: Use VM_WARN_ONCE() for irqs disabled check

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2016-06-28 06:38:24

The check for !arch_irqs_disabled() in find_linux_pte_or_hugepte() is a
debugging aid, and needn't be enabled for production builds.

Switch it to a VM_WARN_ONCE(), which is compiled out when
CONFIG_DEBUG_VM=n.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/include/asm/pgtable.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index ee09e99097f0..651848039dc4 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -71,10 +71,8 @@ pte_t *__find_linux_pte_or_hugepte(pgd_t *pgdir, unsigned long ea,
 static inline pte_t *find_linux_pte_or_hugepte(pgd_t *pgdir, unsigned long ea,
 					       bool *is_thp, unsigned *shift)
 {
-	if (!arch_irqs_disabled()) {
-		pr_info("%s called with irq enabled\n", __func__);
-		dump_stack();
-	}
+	VM_WARN_ONCE(!arch_irqs_disabled(),
+		     "find_linux_pte_or_hugepte() called with irqs enabled!\n");
 	return __find_linux_pte_or_hugepte(pgdir, ea, is_thp, shift);
 }
 
-- 
2.5.0

Re: [PATCH] powerpc/mm: Use VM_WARN_ONCE() for irqs disabled check

From: Aneesh Kumar K.V <hidden>
Date: 2016-06-28 10:45:34

Michael Ellerman [off-list ref] writes:
quoted hunk
The check for !arch_irqs_disabled() in find_linux_pte_or_hugepte() is a
debugging aid, and needn't be enabled for production builds.

Switch it to a VM_WARN_ONCE(), which is compiled out when
CONFIG_DEBUG_VM=n.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/include/asm/pgtable.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index ee09e99097f0..651848039dc4 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -71,10 +71,8 @@ pte_t *__find_linux_pte_or_hugepte(pgd_t *pgdir, unsigned long ea,
 static inline pte_t *find_linux_pte_or_hugepte(pgd_t *pgdir, unsigned long ea,
 					       bool *is_thp, unsigned *shift)
 {
-	if (!arch_irqs_disabled()) {
-		pr_info("%s called with irq enabled\n", __func__);
-		dump_stack();
-	}
+	VM_WARN_ONCE(!arch_irqs_disabled(),
+		     "find_linux_pte_or_hugepte() called with irqs enabled!\n");
 	return __find_linux_pte_or_hugepte(pgdir, ea, is_thp, shift);
 }

https://lkml.kernel.org/r/574de240.uG8/5OM2Lu9RY6K+%akpm@linux-foundation.orgdd

Isn't this patch already part of -mm. And why ONCE, we want to find
about all the wrong usage.

-aneesh

Re: [PATCH] powerpc/mm: Use VM_WARN_ONCE() for irqs disabled check

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2016-06-28 11:13:10

On Tue, 2016-06-28 at 16:15 +0530, Aneesh Kumar K.V wrote:
Michael Ellerman [off-list ref] writes:
quoted
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index ee09e99097f0..651848039dc4 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -71,10 +71,8 @@ pte_t *__find_linux_pte_or_hugepte(pgd_t *pgdir, unsigned long ea,
 static inline pte_t *find_linux_pte_or_hugepte(pgd_t *pgdir, unsigned long ea,
 					       bool *is_thp, unsigned *shift)
 {
-	if (!arch_irqs_disabled()) {
-		pr_info("%s called with irq enabled\n", __func__);
-		dump_stack();
-	}
+	VM_WARN_ONCE(!arch_irqs_disabled(),
+		     "find_linux_pte_or_hugepte() called with irqs enabled!\n");
 	return __find_linux_pte_or_hugepte(pgdir, ea, is_thp, shift);
 }
https://lkml.kernel.org/r/574de240.uG8/5OM2Lu9RY6K+%akpm@linux-foundation.orgdd

Isn't this patch already part of -mm.
Ugh, yes. I missed that you'd already sent it.
And why ONCE, we want to find about all the wrong usage.
Sure, but if you hit it repeatedly in a common path you're likely to kill the
box just with console spam.

But I don't mind. Ignore this version.

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help