Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH -next] arm64/mm: fix a bogus GFP flag in pgd_alloc()
@ 2019-06-04 14:00 Qian Cai
  2019-06-04 14:23 ` Mark Rutland
  0 siblings, 1 reply; 20+ messages in thread
From: Qian Cai @ 2019-06-04 14:00 UTC (permalink / raw)
  To: akpm
  Cc: catalin.marinas, will.deacon, linux-kernel, mhocko, linux-mm,
	Qian Cai, vdavydov.dev, hannes, cgroups, rppt, linux-arm-kernel

The commit "arm64: switch to generic version of pte allocation"
introduced endless failures during boot like,

kobject_add_internal failed for pgd_cache(285:chronyd.service) (error:
-2 parent: cgroup)

It turns out __GFP_ACCOUNT is passed to kernel page table allocations
and then later memcg finds out those don't belong to any cgroup.

backtrace:
  kobject_add_internal
  kobject_init_and_add
  sysfs_slab_add+0x1a8
  __kmem_cache_create
  create_cache
  memcg_create_kmem_cache
  memcg_kmem_cache_create_func
  process_one_work
  worker_thread
  kthread

Signed-off-by: Qian Cai <cai@lca.pw>
---
 arch/arm64/mm/pgd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/mm/pgd.c b/arch/arm64/mm/pgd.c
index 769516cb6677..53c48f5c8765 100644
--- a/arch/arm64/mm/pgd.c
+++ b/arch/arm64/mm/pgd.c
@@ -38,7 +38,7 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
 	if (PGD_SIZE == PAGE_SIZE)
 		return (pgd_t *)__get_free_page(gfp);
 	else
-		return kmem_cache_alloc(pgd_cache, gfp);
+		return kmem_cache_alloc(pgd_cache, GFP_PGTABLE_KERNEL);
 }
 
 void pgd_free(struct mm_struct *mm, pgd_t *pgd)
-- 
1.8.3.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, back to index

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-04 14:00 [PATCH -next] arm64/mm: fix a bogus GFP flag in pgd_alloc() Qian Cai
2019-06-04 14:23 ` Mark Rutland
2019-06-04 14:30   ` Mark Rutland
2019-06-05 21:33     ` Mike Rapoport
2019-06-04 14:54   ` Mike Rapoport
2019-06-10 11:43   ` Will Deacon
2019-06-10 17:26     ` Qian Cai
2019-06-11 10:03       ` Mark Rutland
2019-06-11 12:41         ` Mike Rapoport
2019-06-11 12:46           ` Qian Cai
2019-06-12  6:57             ` Mike Rapoport
2019-06-12 18:35               ` Qian Cai
2019-06-11 13:02           ` Mark Rutland
2019-06-13 12:11         ` Mike Rapoport
2019-06-13 13:22           ` Qian Cai
2019-06-13 19:44             ` Mike Rapoport
2019-06-17 15:12           ` Mike Rapoport
2019-06-17 16:36             ` Will Deacon
2019-06-18  6:12               ` Mike Rapoport
2019-06-18  6:54                 ` Will Deacon

Linux-ARM-Kernel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-arm-kernel/0 linux-arm-kernel/git/0.git
	git clone --mirror https://lore.kernel.org/linux-arm-kernel/1 linux-arm-kernel/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-arm-kernel linux-arm-kernel/ https://lore.kernel.org/linux-arm-kernel \
		linux-arm-kernel@lists.infradead.org infradead-linux-arm-kernel@archiver.kernel.org
	public-inbox-index linux-arm-kernel


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.infradead.lists.linux-arm-kernel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox