From patchwork Tue Jun 18 07:19:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiu Jianfeng X-Patchwork-Id: 13701896 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78736C2BA15 for ; Tue, 18 Jun 2024 07:27:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E38266B0314; Tue, 18 Jun 2024 03:27:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DE7D16B0315; Tue, 18 Jun 2024 03:27:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CD67C6B0316; Tue, 18 Jun 2024 03:27:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id AE6F26B0314 for ; Tue, 18 Jun 2024 03:27:23 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 52CE2160543 for ; Tue, 18 Jun 2024 07:27:23 +0000 (UTC) X-FDA: 82243178766.13.2D6CBA5 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by imf23.hostedemail.com (Postfix) with ESMTP id 4CA5B14000C for ; Tue, 18 Jun 2024 07:27:19 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of xiujianfeng@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=xiujianfeng@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718695636; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references; bh=yKaEupdKsfLG7foNYuq3Hfb3a5wtWEEY7i+8jx22CXw=; b=4Z9fVNzrl1ZJAI/uwmqqrOIgICGNoNm2OyE6DXKT0ejNt6Giq8w55kLL7eoCrDH7ba7Yzo UekLMl9ONfn0392Jp66lm9wotDaHTC9YkPzP/A3orYfV5Bvldnhn6wyXw0YMKAd4ZZsyXk x0PAIYhq1LWLityxHsUAfEnjYjr09As= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of xiujianfeng@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=xiujianfeng@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718695636; a=rsa-sha256; cv=none; b=2ZpGJEMhB8G1rVjQFToJvpMAc5YF0kXnKfgCz6LqTC6unv+gUA/eQVUr2eRSBMnXo/q2Kp mMCswrT8GOs2E4szqjG3GsK1R66QbwgCjO8ol46zgLx3hkQnmgV9AgBRJTiy58XP/nc/u7 A+iet50rKLmcuI0cOP/11PfuEZuaYH8= Received: from mail.maildlp.com (unknown [172.19.88.105]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4W3JBH1gltz1SCWS; Tue, 18 Jun 2024 15:23:03 +0800 (CST) Received: from dggpeml500023.china.huawei.com (unknown [7.185.36.114]) by mail.maildlp.com (Postfix) with ESMTPS id 9D1E11402C8; Tue, 18 Jun 2024 15:27:16 +0800 (CST) Received: from hulk-vt.huawei.com (10.67.174.26) by dggpeml500023.china.huawei.com (7.185.36.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Tue, 18 Jun 2024 15:27:16 +0800 From: Xiu Jianfeng To: CC: , Subject: [PATCH v2 -next] mm/hugetlb_cgroup: register lockdep key for cftype Date: Tue, 18 Jun 2024 07:19:22 +0000 Message-ID: <20240618071922.2127289-1-xiujianfeng@huawei.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Originating-IP: [10.67.174.26] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To dggpeml500023.china.huawei.com (7.185.36.114) X-Stat-Signature: u41ccsfibtpegzq1gj1t7cz1p75jawpt X-Rspam-User: X-Rspamd-Queue-Id: 4CA5B14000C X-Rspamd-Server: rspam02 X-HE-Tag: 1718695639-443752 X-HE-Meta: U2FsdGVkX18JX920yPwbnz30Ylq4h3OzIwWTzqZI2HSF5M4skWkJLdhfWWQGJbaqyFNrJIssBoI63U8agm7m2vZN2BZlKEGx9svUX8/7/OuNJ9bTrvhdnIatjQHRVJ8AkBC5fs3xQZt7OtxlFNZOcCaUazGIDc/eBXwqaHbZ9WnrSxgCSYlHg5ZLgwJqrsL4BDKniCKKv8raE7zjpvPALpCpPNG5Aae9b+cc+i8E9b/3jvZPRnELYMdzHY/wQaZcK+Z9k3zT9YqqOV7Owces+D+UKQN/oVDOwI3J9cQOazuI/y/YcQjQ8OSemBmz5G7ilnsxRnsIJf3Pl8SPBP9638FWt35LNfYJ6SR8g1yJhK9PxFCDc5+LISZFDpiifhzRdf/wgCgT8i7IT0eWbxFTm317nIiCumZPCdsPNr+rg+olMsK8a8AQ2Jp5kSqGtWv8zTo2IzqJr/UJzbIjjYKAbxKiNRc83j7sdXjTW6PQ9S5qeRJMxKZ31AlxreCN1EoI95LcdEWx2Phkq1QrIFsupa6kKXqRtFoLOeC9BrvptCMBC/8vQobqNR5pP3ytEbhXBxc6omZMlxfCHnolK7Mey1sMioLzS/+rps+BQ7xZdpnGEnbHLCnucxQ5FwUMmrq85J1GNGDYpOgRM4hTyZyo8mdLl+N1I9HBUlNszSA2S4CmOqUAJaD5mILD8at0aMscLn14kCjm42IvBiLZQasVv1STpg9JjCpcZF7rf/1D4QN8e2VCt2uCsj6headMPX9YQ/ZvJ/5LfHmA0+3s3+uDcPV0JaB2VE5BqL8Id5JfHI6nfmYy8NpWz17zjXC/wMpvcMCP1p+cvI3eECHhQF9Y1wG9lia9VNi2O5vtotpE5j0ZdoNmNGOl+nZRgRWJ8KUPwRJJM6opbCJoxGeNcH7PhNxuu87AXD6Rvra8RPaha+C1txovsUMD0hngeojLhlPFlH0OAX9CV0Jz2ybiZRV qq9Naaid vf6CRezItl8USby7mp0+FMtVgYRxiuYSjJ+4Az4U7/LACE3H1x7IGqQMvbE/m2XqcjX7mWZelwvLNJlFmwjmj9LJSu/0NLXD7vqsgrPJhp/0s3E5iDO8KWyhw8wCQJGX+oPGcCI8c9LgFJoarycdARTZ9cMLZdU0eKyQbUme2nLtvU30G0mJxxP4g4O6S85OpTB9aJcecrGD9/L7OlDOwC92JKvb55cn2DzgAzHh2giOrownTgfRd0QFRYP6LcoledlTpJWZ1MKl1MO8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: When CONFIG_DEBUG_LOCK_ALLOC is enabled, the following commands can trigger a bug, mount -t cgroup2 none /sys/fs/cgroup cd /sys/fs/cgroup echo "+hugetlb" > cgroup.subtree_control The log is as below: BUG: key ffff8880046d88d8 has not been registered! ------------[ cut here ]------------ DEBUG_LOCKS_WARN_ON(1) WARNING: CPU: 3 PID: 226 at kernel/locking/lockdep.c:4945 lockdep_init_map_type+0x185/0x220 Modules linked in: CPU: 3 PID: 226 Comm: bash Not tainted 6.10.0-rc4-next-20240617-g76db4c64526c #544 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:lockdep_init_map_type+0x185/0x220 Code: 00 85 c0 0f 84 6c ff ff ff 8b 3d 6a d1 85 01 85 ff 0f 85 5e ff ff ff 48 c7 c6 21 99 4a 82 48 c7 c7 60 29 49 82 e8 3b 2e f5 RSP: 0018:ffffc9000083fc30 EFLAGS: 00000282 RAX: 0000000000000000 RBX: ffffffff828dd820 RCX: 0000000000000027 RDX: ffff88803cd9cac8 RSI: 0000000000000001 RDI: ffff88803cd9cac0 RBP: ffff88800674fbb0 R08: ffffffff828ce248 R09: 00000000ffffefff R10: ffffffff8285e260 R11: ffffffff828b8eb8 R12: ffff8880046d88d8 R13: 0000000000000000 R14: 0000000000000000 R15: ffff8880067281c0 FS: 00007f68601ea740(0000) GS:ffff88803cd80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00005614f3ebc740 CR3: 000000000773a000 CR4: 00000000000006f0 Call Trace: ? __warn+0x77/0xd0 ? lockdep_init_map_type+0x185/0x220 ? report_bug+0x189/0x1a0 ? handle_bug+0x3c/0x70 ? exc_invalid_op+0x18/0x70 ? asm_exc_invalid_op+0x1a/0x20 ? lockdep_init_map_type+0x185/0x220 __kernfs_create_file+0x79/0x100 cgroup_addrm_files+0x163/0x380 ? find_held_lock+0x2b/0x80 ? find_held_lock+0x2b/0x80 ? find_held_lock+0x2b/0x80 css_populate_dir+0x73/0x180 cgroup_apply_control_enable+0x12f/0x3a0 cgroup_subtree_control_write+0x30b/0x440 kernfs_fop_write_iter+0x13a/0x1f0 vfs_write+0x341/0x450 ksys_write+0x64/0xe0 do_syscall_64+0x4b/0x110 entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7f68602d9833 Code: 8b 15 61 26 0e 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 00 64 8b 04 25 18 00 00 00 85 c0 75 14 b8 01 00 00 00 08 RSP: 002b:00007fff9bbdf8e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000000000009 RCX: 00007f68602d9833 RDX: 0000000000000009 RSI: 00005614f3ebc740 RDI: 0000000000000001 RBP: 00005614f3ebc740 R08: 000000000000000a R09: 0000000000000008 R10: 00005614f3db6ba0 R11: 0000000000000246 R12: 0000000000000009 R13: 00007f68603bd6a0 R14: 0000000000000009 R15: 00007f68603b8880 For lockdep, there is a sanity check in lockdep_init_map_type(), the lock-class key must either have been allocated statically or must have been registered as a dynamic key. However the commit e18df2889ff9 ("mm/hugetlb_cgroup: prepare cftypes based on template") has changed the cftypes from static allocated objects to dynamic allocated objects, so the cft->lockdep_key must be registered proactively. Fixes: e18df2889ff9 ("mm/hugetlb_cgroup: prepare cftypes based on template") Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-lkp/202406181046.8d8b2492-oliver.sang@intel.com Signed-off-by: Xiu Jianfeng Tested-by: Marek Szyprowski --- v2: add bug log to commit message --- mm/hugetlb_cgroup.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c index 2b899c4ae968..4ff238ba1250 100644 --- a/mm/hugetlb_cgroup.c +++ b/mm/hugetlb_cgroup.c @@ -836,6 +836,8 @@ hugetlb_cgroup_cfttypes_init(struct hstate *h, struct cftype *cft, cft->file_offset = MEMFILE_OFFSET0(offset) + MEMFILE_FIELD_SIZE(offset) * idx; } + + lockdep_register_key(&cft->lockdep_key); } }