From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
To: linux-mm@kvack.org, akpm@linux-foundation.org
Cc: kernel test robot <lkp@intel.com>,
linuxppc-dev@lists.ozlabs.org,
"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
Anshuman Khandual <anshuman.khandual@arm.com>
Subject: [PATCH] mm/debug_vm_pgtable: Avoid doing memory allocation with pgtable_t mapped.
Date: Sun, 13 Sep 2020 16:33:27 +0530 [thread overview]
Message-ID: <20200913110327.645310-1-aneesh.kumar@linux.ibm.com> (raw)
In-Reply-To: <20200902114222.181353-1-aneesh.kumar@linux.ibm.com>
With highmem, pte_alloc_map() keep the level4 page table mapped using
kmap_atomic(). Avoid doing new memory allocation with page table
mapped like above.
[ 9.409233] BUG: sleeping function called from invalid context at mm/page_alloc.c:4822
[ 9.410557] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper
[ 9.411932] no locks held by swapper/1.
[ 9.412595] CPU: 0 PID: 1 Comm: swapper Not tainted 5.9.0-rc3-00323-gc50eb1ed654b5 #2
[ 9.413824] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
[ 9.415207] Call Trace:
[ 9.415651] ? ___might_sleep.cold+0xa7/0xcc
[ 9.416367] ? __alloc_pages_nodemask+0x14c/0x5b0
[ 9.417055] ? swap_migration_tests+0x50/0x293
[ 9.417704] ? debug_vm_pgtable+0x4bc/0x708
[ 9.418287] ? swap_migration_tests+0x293/0x293
[ 9.418911] ? do_one_initcall+0x82/0x3cb
[ 9.419465] ? parse_args+0x1bd/0x280
[ 9.419983] ? rcu_read_lock_sched_held+0x36/0x60
[ 9.420673] ? trace_initcall_level+0x1f/0xf3
[ 9.421279] ? trace_initcall_level+0xbd/0xf3
[ 9.421881] ? do_basic_setup+0x9d/0xdd
[ 9.422410] ? do_basic_setup+0xc3/0xdd
[ 9.422938] ? kernel_init_freeable+0x72/0xa3
[ 9.423539] ? rest_init+0x134/0x134
[ 9.424055] ? kernel_init+0x5/0x12c
[ 9.424574] ? ret_from_fork+0x19/0x30
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
---
mm/debug_vm_pgtable.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c
index d12bde82ae95..612c665a1136 100644
--- a/mm/debug_vm_pgtable.c
+++ b/mm/debug_vm_pgtable.c
@@ -994,7 +994,13 @@ static int __init debug_vm_pgtable(void)
p4dp = p4d_alloc(mm, pgdp, vaddr);
pudp = pud_alloc(mm, p4dp, vaddr);
pmdp = pmd_alloc(mm, pudp, vaddr);
- ptep = pte_alloc_map(mm, pmdp, vaddr);
+ /*
+ * Allocate pgtable_t
+ */
+ if (pte_alloc(mm, pmdp)) {
+ pr_err("pgtable allocation failed\n");
+ return 1;
+ }
/*
* Save all the page table page addresses as the page table
@@ -1048,8 +1054,7 @@ static int __init debug_vm_pgtable(void)
* proper page table lock.
*/
- ptl = pte_lockptr(mm, pmdp);
- spin_lock(ptl);
+ ptep = pte_offset_map_lock(mm, pmdp, vaddr, &ptl);
pte_clear_tests(mm, ptep, pte_aligned, vaddr, prot);
pte_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
pte_unmap_unlock(ptep, ptl);
--
2.26.2
WARNING: multiple messages have this Message-ID (diff)
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
To: linux-mm@kvack.org, akpm@linux-foundation.org
Cc: mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org,
Anshuman Khandual <anshuman.khandual@arm.com>,
"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
kernel test robot <lkp@intel.com>
Subject: [PATCH] mm/debug_vm_pgtable: Avoid doing memory allocation with pgtable_t mapped.
Date: Sun, 13 Sep 2020 16:33:27 +0530 [thread overview]
Message-ID: <20200913110327.645310-1-aneesh.kumar@linux.ibm.com> (raw)
In-Reply-To: <20200902114222.181353-1-aneesh.kumar@linux.ibm.com>
With highmem, pte_alloc_map() keep the level4 page table mapped using
kmap_atomic(). Avoid doing new memory allocation with page table
mapped like above.
[ 9.409233] BUG: sleeping function called from invalid context at mm/page_alloc.c:4822
[ 9.410557] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper
[ 9.411932] no locks held by swapper/1.
[ 9.412595] CPU: 0 PID: 1 Comm: swapper Not tainted 5.9.0-rc3-00323-gc50eb1ed654b5 #2
[ 9.413824] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
[ 9.415207] Call Trace:
[ 9.415651] ? ___might_sleep.cold+0xa7/0xcc
[ 9.416367] ? __alloc_pages_nodemask+0x14c/0x5b0
[ 9.417055] ? swap_migration_tests+0x50/0x293
[ 9.417704] ? debug_vm_pgtable+0x4bc/0x708
[ 9.418287] ? swap_migration_tests+0x293/0x293
[ 9.418911] ? do_one_initcall+0x82/0x3cb
[ 9.419465] ? parse_args+0x1bd/0x280
[ 9.419983] ? rcu_read_lock_sched_held+0x36/0x60
[ 9.420673] ? trace_initcall_level+0x1f/0xf3
[ 9.421279] ? trace_initcall_level+0xbd/0xf3
[ 9.421881] ? do_basic_setup+0x9d/0xdd
[ 9.422410] ? do_basic_setup+0xc3/0xdd
[ 9.422938] ? kernel_init_freeable+0x72/0xa3
[ 9.423539] ? rest_init+0x134/0x134
[ 9.424055] ? kernel_init+0x5/0x12c
[ 9.424574] ? ret_from_fork+0x19/0x30
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
---
mm/debug_vm_pgtable.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c
index d12bde82ae95..612c665a1136 100644
--- a/mm/debug_vm_pgtable.c
+++ b/mm/debug_vm_pgtable.c
@@ -994,7 +994,13 @@ static int __init debug_vm_pgtable(void)
p4dp = p4d_alloc(mm, pgdp, vaddr);
pudp = pud_alloc(mm, p4dp, vaddr);
pmdp = pmd_alloc(mm, pudp, vaddr);
- ptep = pte_alloc_map(mm, pmdp, vaddr);
+ /*
+ * Allocate pgtable_t
+ */
+ if (pte_alloc(mm, pmdp)) {
+ pr_err("pgtable allocation failed\n");
+ return 1;
+ }
/*
* Save all the page table page addresses as the page table
@@ -1048,8 +1054,7 @@ static int __init debug_vm_pgtable(void)
* proper page table lock.
*/
- ptl = pte_lockptr(mm, pmdp);
- spin_lock(ptl);
+ ptep = pte_offset_map_lock(mm, pmdp, vaddr, &ptl);
pte_clear_tests(mm, ptep, pte_aligned, vaddr, prot);
pte_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
pte_unmap_unlock(ptep, ptl);
--
2.26.2
next prev parent reply other threads:[~2020-09-13 11:05 UTC|newest]
Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-02 11:42 [PATCH v4 00/13] mm/debug_vm_pgtable fixes Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-02 11:42 ` [PATCH v4 01/13] powerpc/mm: Add DEBUG_VM WARN for pmd_clear Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-02 11:42 ` [PATCH v4 02/13] powerpc/mm: Move setting pte specific flags to pfn_pte Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-02 12:30 ` Christophe Leroy
2020-09-02 11:42 ` [PATCH v4 03/13] mm/debug_vm_pgtable/ppc64: Avoid setting top bits in radom value Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-04 4:03 ` Anshuman Khandual
2020-09-04 4:03 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 04/13] mm/debug_vm_pgtables/hugevmap: Use the arch helper to identify huge vmap support Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-02 12:40 ` Christophe Leroy
2020-09-02 12:53 ` Aneesh Kumar K.V
2020-09-04 4:08 ` Anshuman Khandual
2020-09-04 4:08 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 05/13] mm/debug_vm_pgtable/savedwrite: Enable savedwrite test with CONFIG_NUMA_BALANCING Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-04 4:09 ` Anshuman Khandual
2020-09-04 4:09 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 06/13] mm/debug_vm_pgtable/THP: Mark the pte entry huge before using set_pmd/pud_at Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-04 5:21 ` Anshuman Khandual
2020-09-04 5:21 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 07/13] mm/debug_vm_pgtable/set_pte/pmd/pud: Don't use set_*_at to update an existing pte entry Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-04 5:34 ` Anshuman Khandual
2020-09-04 5:34 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 08/13] mm/debug_vm_pgtable/locks: Move non page table modifying test together Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-04 3:58 ` Anshuman Khandual
2020-09-04 3:58 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 09/13] mm/debug_vm_pgtable/locks: Take correct page table lock Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-04 5:39 ` Anshuman Khandual
2020-09-04 5:39 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 10/13] mm/debug_vm_pgtable/thp: Use page table depost/withdraw with THP Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-04 4:21 ` Anshuman Khandual
2020-09-04 4:21 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 11/13] mm/debug_vm_pgtable/pmd_clear: Don't use pmd/pud_clear on pte entries Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-04 6:03 ` Anshuman Khandual
2020-09-04 6:03 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 12/13] mm/debug_vm_pgtable/hugetlb: Disable hugetlb test on ppc64 Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-04 6:19 ` Anshuman Khandual
2020-09-04 6:19 ` Anshuman Khandual
2020-09-02 11:42 ` [PATCH v4 13/13] mm/debug_vm_pgtable: Avoid none pte in pte_clear_test Aneesh Kumar K.V
2020-09-02 11:42 ` Aneesh Kumar K.V
2020-09-11 2:13 ` Nathan Chancellor
2020-09-11 2:13 ` Nathan Chancellor
2020-09-11 5:21 ` Aneesh Kumar K.V
2020-09-11 5:21 ` Aneesh Kumar K.V
2020-09-11 5:21 ` Aneesh Kumar K.V
2020-09-23 3:14 ` Anshuman Khandual
2020-09-23 3:14 ` Anshuman Khandual
2020-09-23 3:14 ` Anshuman Khandual
2020-10-11 20:02 ` Guenter Roeck
2020-10-11 20:02 ` Guenter Roeck
2020-10-12 4:29 ` Aneesh Kumar K.V
2020-10-12 4:29 ` Aneesh Kumar K.V
2020-10-12 4:29 ` Aneesh Kumar K.V
2020-09-02 11:46 ` Aneesh Kumar K.V
2020-09-02 11:46 ` Aneesh Kumar K.V
2020-09-04 4:16 ` Anshuman Khandual
2020-09-04 4:16 ` Anshuman Khandual
2020-09-04 6:48 ` [PATCH v4 00/13] mm/debug_vm_pgtable fixes Anshuman Khandual
2020-09-04 6:48 ` Anshuman Khandual
2020-09-04 6:48 ` Anshuman Khandual
2020-09-04 6:48 ` Anshuman Khandual
2020-09-04 15:26 ` Gerald Schaefer
2020-09-04 15:26 ` Gerald Schaefer
2020-09-04 15:26 ` Gerald Schaefer
2020-09-04 15:26 ` Gerald Schaefer
2020-09-04 16:01 ` Gerald Schaefer
2020-09-04 16:01 ` Gerald Schaefer
2020-09-04 16:01 ` Gerald Schaefer
2020-09-04 16:01 ` Gerald Schaefer
2020-09-04 17:53 ` Gerald Schaefer
2020-09-04 17:53 ` Gerald Schaefer
2020-09-04 17:53 ` Gerald Schaefer
2020-09-04 17:53 ` Gerald Schaefer
2020-09-09 8:38 ` Anshuman Khandual
2020-09-09 8:38 ` Anshuman Khandual
2020-09-09 8:38 ` Anshuman Khandual
2020-09-09 8:38 ` Anshuman Khandual
2020-09-08 15:39 ` Gerald Schaefer
2020-09-08 15:39 ` Gerald Schaefer
2020-09-08 15:39 ` Gerald Schaefer
2020-09-08 15:39 ` Gerald Schaefer
2020-09-09 6:08 ` Aneesh Kumar K.V
2020-09-09 6:08 ` Aneesh Kumar K.V
2020-09-09 6:08 ` Aneesh Kumar K.V
2020-09-09 6:08 ` Aneesh Kumar K.V
2020-09-09 11:16 ` Gerald Schaefer
2020-09-09 11:16 ` Gerald Schaefer
2020-09-09 11:16 ` Gerald Schaefer
2020-09-09 11:16 ` Gerald Schaefer
2020-09-09 8:15 ` Anshuman Khandual
2020-09-09 8:15 ` Anshuman Khandual
2020-09-09 8:15 ` Anshuman Khandual
2020-09-09 8:15 ` Anshuman Khandual
2020-09-09 11:10 ` Gerald Schaefer
2020-09-09 11:10 ` Gerald Schaefer
2020-09-09 11:10 ` Gerald Schaefer
2020-09-09 11:10 ` Gerald Schaefer
2020-09-09 8:08 ` Anshuman Khandual
2020-09-09 8:08 ` Anshuman Khandual
2020-09-09 8:08 ` Anshuman Khandual
2020-09-09 8:08 ` Anshuman Khandual
2020-09-09 11:36 ` Gerald Schaefer
2020-09-09 11:36 ` Gerald Schaefer
2020-09-09 11:36 ` Gerald Schaefer
2020-09-09 11:36 ` Gerald Schaefer
2020-09-13 11:03 ` Aneesh Kumar K.V [this message]
2020-09-13 11:03 ` [PATCH] mm/debug_vm_pgtable: Avoid doing memory allocation with pgtable_t mapped Aneesh Kumar K.V
2020-09-13 13:42 ` Matthew Wilcox
2020-09-13 13:42 ` Matthew Wilcox
2020-10-13 20:58 ` [PATCH v4 00/13] mm/debug_vm_pgtable fixes Andrew Morton
2020-10-13 20:58 ` Andrew Morton
2020-10-14 3:15 ` Aneesh Kumar K.V
2020-10-14 3:15 ` Aneesh Kumar K.V
2020-10-14 20:36 ` Andrew Morton
2020-10-14 20:36 ` Andrew Morton
2020-10-15 2:59 ` Anshuman Khandual
2020-10-15 2:59 ` Anshuman Khandual
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=20200913110327.645310-1-aneesh.kumar@linux.ibm.com \
--to=aneesh.kumar@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lkp@intel.com \
/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 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.