From mboxrd@z Thu Jan 1 00:00:00 1970 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 7672FC021B1 for ; Thu, 20 Feb 2025 12:44:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CC6A52802DF; Thu, 20 Feb 2025 07:44:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C775E2802DA; Thu, 20 Feb 2025 07:44:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B17472802DF; Thu, 20 Feb 2025 07:44:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8E7CE2802DA for ; Thu, 20 Feb 2025 07:44:45 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 353321612E9 for ; Thu, 20 Feb 2025 12:44:45 +0000 (UTC) X-FDA: 83140292130.17.830950D Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) by imf03.hostedemail.com (Postfix) with ESMTP id 3556A2000B for ; Thu, 20 Feb 2025 12:44:43 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=cUejccQN; spf=pass (imf03.hostedemail.com: domain of mmpgouride@gmail.com designates 209.85.222.171 as permitted sender) smtp.mailfrom=mmpgouride@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740055483; 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:in-reply-to:references:references:dkim-signature; bh=BDaZaY0Du2EeWTyDtvHLozAnt6F+sCECf/kzNNq8glI=; b=BAdtDu71v/95Hnv/KK0T5bZkZJn74zJWpPJtVSWZsi3EIqHkNOcWnveQZ0fnGwvieoIDep heiv75+duQT9+69umtKQlbTw1zjcCFRGHOGuW8xwFR13cUe6J7LK7ZIanY0tdqnPvtA1wR nGmd2SoG6xYL6hM5OqBl/T/ZDmlUCkI= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=cUejccQN; spf=pass (imf03.hostedemail.com: domain of mmpgouride@gmail.com designates 209.85.222.171 as permitted sender) smtp.mailfrom=mmpgouride@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740055483; a=rsa-sha256; cv=none; b=Nu9uNS9VnfF1HpLDMOcwga3dmcAh2lf4BJHCfzEOZvvb7ji1m/7kAsEisAvdLUmND4EO0A /kPq1WkcX8aY7UU6XWq/f9JZtc+idQYT+X9T3uys7DiU3Ibuppin6/GisjJ67AdVc9YgIn OO1bEIoEzYJZxvvX55ekaP3rRqUEKgc= Received: by mail-qk1-f171.google.com with SMTP id af79cd13be357-7c09d7bb33bso61373485a.1 for ; Thu, 20 Feb 2025 04:44:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740055482; x=1740660282; darn=kvack.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=BDaZaY0Du2EeWTyDtvHLozAnt6F+sCECf/kzNNq8glI=; b=cUejccQNgPIZKbKApNe7l4huxj/xWEiBVrJGi9+KHWlMf2k/isYylzDCc/6T9fS5r8 Au+lLJgdnqYUCasWkLkBVWdAQ72T3kwlsHctsR9KzZajlie4OHTtlcy8vmx0+L4iUeSE kjsgPlcnDjGdC/qcV6J8aHx696XZvWltPC57+R0rMfu3lmxco/gCH/eyzVoJY6SjcEMW uQLDmoIsT+SlpRJuX2gLJpA4+Jz293KKGjBp0HE5yTb1Fp2mth/3bO4w+6rwUXx/o/kQ hlQaYcmBrybNaPmNYDX+z6MB9lBafy4uD7zplzyqKLjMyh1SdHqYnc9XdiccBEO6LtK9 VwWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740055482; x=1740660282; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BDaZaY0Du2EeWTyDtvHLozAnt6F+sCECf/kzNNq8glI=; b=gO2KBbzLVomFBGjn4Ep5jRzou4KYNzMrp3LG+hk5P1lcpOBHeXXc5KANgQlB3ASx1d +zIUYx0DNHtCDBsgvm7RLy3dFUS6GcY9oIUThUwS50jY5Y2lYtROBMuA9Wxu02IggTtS Htkp8FvG11RyQK60sJpX2w6O9iBqjgj/S+ZX+QvTTdlEJjiLg9g9R1Jy7No+tpeZIxxS VGACHru8SRJJpTwLHo/CO6qGsfJIQz62KaAYNnH8kzv0wNvqk4VbijOi3DstjIFztC32 dclyx61G/Y8T+sHBB2B1xbGqR2dlou6xUH/I6s1wf/A3A76FZeGxNle4kZq8cmj9QbNJ NyVw== X-Forwarded-Encrypted: i=1; AJvYcCVVcexzSSCXTLWa1AkMdoXwFZlvgocU6NQ+s8qow335KyEuuESlGoYyrPQQomFPksFH8l8UWcK0DA==@kvack.org X-Gm-Message-State: AOJu0YxE0Kqi6EmxoHerdNLLhuWZJNKjX8823qFMaZ9NY1Z6QuRS819U DzzfEddNPvrZXPjEghNNiqD/S9nPEZ67cN6Ovep/9fnybEdWFePU X-Gm-Gg: ASbGncseKTjR2qMvRRfO/JJG7xQ+EJoXJGTNIM2sa35hKECckSapMPVie+kGeve2SEj r8NRx5QJ6nBALaCUAuy9fcL/JfYATKvnfHZHx/2r7TTCwyVz6/LSGCfgSLXgAQnT6KBR1ymhQQc ycsPKEGQNuBs8UM0ejcfULijkBlMeD5ApdoZZupaz5ajgXh20ZIVgvLhvkwVHKvi7tgLitiKaAb ZyQITFx9vFMYe1ITkdw1Nsm5D8IW8Qrrxrp0AahKF/xL/ErY0xcWJdPlp1P/lL+jXtDv1K2EaM= X-Google-Smtp-Source: AGHT+IF1AHq64/AeHVwjuT1SMlY+ILxCwbD4ptHHVwWPhSLT1Sz3YXdUZhYa6Q8aHb9D3rsj5okGkQ== X-Received: by 2002:a05:620a:4412:b0:7c0:6865:ad8a with SMTP id af79cd13be357-7c0b5366bb9mr1234186685a.56.1740055482185; Thu, 20 Feb 2025 04:44:42 -0800 (PST) Received: from smtpclient.apple ([2402:d0c0:11:86::1]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c0b1027932sm273798485a.115.2025.02.20.04.44.38 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Feb 2025 04:44:41 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\)) Subject: Re: [PATCH] bcachefs: Use alloc_percpu_gfp to avoid deadlock From: Alan Huang In-Reply-To: Date: Thu, 20 Feb 2025 20:44:24 +0800 Cc: linux-bcachefs@vger.kernel.org, syzbot+fe63f377148a6371a9db@syzkaller.appspotmail.com, linux-mm@kvack.org, Tejun Heo , Dennis Zhou , Christoph Lameter Content-Transfer-Encoding: quoted-printable Message-Id: <34A7FB0C-6488-4068-B5B8-F9D72529D2D3@gmail.com> References: <20250212100625.55860-1-mmpgouride@gmail.com> <25FBAAE5-8BC6-41F3-9A6D-65911BA5A5D7@gmail.com> To: Kent Overstreet X-Mailer: Apple Mail (2.3826.400.131.1.6) X-Rspamd-Queue-Id: 3556A2000B X-Stat-Signature: piyca6onfeyauudu441t3865gkbki56r X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1740055483-182226 X-HE-Meta: U2FsdGVkX19bNv9PMM4NuGvduogyrtiuhU2o3Ge8XuoOr2OoeX9rFupJq3x4OuHfTn+RadsucCgnHDTYKaRvFBw/gkCp9EWj1ET17LIWmaA8Cz2MZJounr9Z9RdVAEEzNMgbPwZWE5z5VtMsEVqq9Jsmh1E1NdEwJbM3Dl3N/Z9qXbjha0KqE154yLUpVmJ0GiF85/n00TPTNYhy4u0tDP4cKZFb5VdILdPL7OXkyPGZtp43BnXDgwS/gCXOFDwSf0or78kCVymMT4dgfmDRD5IWVxZkk8hLTE5zF1GuN3GMRf5grNHEcMPdiEKawW/8gHS/ubEFwHLrOIZsxXv8TECdE3USuqiZbHT6PYZAvmrxRP9qbg0tomi60xh9wRu5fWN64+f2EBKnDykH52weJ7nNf+akdGghR7C4wmO3myo9IPDXZoBcLGKltBQwO/tyZfZWHSsDmGc2jVJrVm+IwZ55IMrLQe10y6BmT7lUzoq1llK3uSLB9OSMiqi4i8ST6uDb13lGS9j3J/e4zGi8uALT5FjqsBrUY9BNljDksFIpdm0SI7dLQpyai5z35pbg6pylOaFz0se7UqaPHlpvNK9GaQcXI9iZl4hZ28nEpdjEuO8coYLt8W0Fnxls3HLaNGIW/QN5Dea/232zxraTfBOIRy74cJDooUq7HkPH3PdsBuTyTg92sE/jy+NxpFX3HlwUT4sg9iFP4cvad4vIxF1VusIttcjBCa9HWImE20jhR872akikC5QcizyybVt+siXjmH+rTyhg4BM2DAqTRjwf7VeFlFqEXoexCbbeZMRe0wgKvpWo435dlwp1vCK58Wqs7GyvJlbDqWiOOHFXvVom9CGDWsGHCZ3VL9VB+V1CuYUhjUzvWw0GJnYGiGAFwJB1FE5K/zqnu110KhQo0cXihBjDNX8kX8NE51FFQ8dXFYEsC+8Q+BLyUckm7S7SR01WSEzmT6grJ7hXx8y 5yRVIYRu aJj2abXxnL8NjmWNfw/8aDgmeksUdBQSxQ7wjGTKP1ux1S6SuRZrBe3l/g/V3N4ZbsELSq2Z7vezqAZcpTOl4EvCwvUL48drclQPEKSpRX17E/cxKXEk2otj9MF6uDV1+1dCZB1R+vks53T6IrG2EvTPXhZoN1M9GLg/aA5E9gdKGFKpWo2LAZMVl/Dd/LgV96hvSdX2t4/AcK6BmMyC2RKZ+JxX13QCRSpZ0HM0VKBJWTRSoy89F9JcrMm63dUXzuvb3/sHUTt8AyuwJXsfbDG7RQMslWng/6MTfO85eOdbrEU16Yd2ak6Wj3Lxz0mp/jq2uoxXm0D4Qz7ZF2PNRJBxMq4Nfc3kvPu6C3X+y1k5gUpEXTuVUySK2wIKXKFgYCuYr6wi3CEEq1xjWNJHkTJzNP5kBMYuzMa4srncmbo4gJY12tBqJUKUKF7imK9AIUo691V2JnAPiW/QIxf+aAs7V2EKO14038gN6sFYi9g9iF9WtgSk6/l/RnKUrKdS9UDhXF+uW5CqSTIROchQJZ+ELQDS2syUmSkSXUfHKFOzqZoI47dQRR65dHhuxdynghaXOlTXYN5lsLYe9gUiw3TngurbGyhk3FTBrkKv3kHDYMOVJLDNaUXnS7w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.002791, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: > On Feb 20, 2025, at 20:40, Kent Overstreet = wrote: >=20 > On Thu, Feb 20, 2025 at 06:57:32PM +0800, Alan Huang wrote: >> Ping >=20 > I really want to get this fixed in percpu... >=20 > let's leave this until we can fix it properly, this has come up before > and I don't want to just kick the can down again >=20 > (yes, that means fixing the global percpu allocation lock) The ping is for the percpu people... >=20 >>=20 >>> On Feb 12, 2025, at 22:27, Kent Overstreet = wrote: >>>=20 >>> Adding pcpu people to the CC >>>=20 >>> On Wed, Feb 12, 2025 at 06:06:25PM +0800, Alan Huang wrote: >>>> The cycle: >>>>=20 >>>> CPU0: CPU1: >>>> bc->lock pcpu_alloc_mutex >>>> pcpu_alloc_mutex bc->lock >>>>=20 >>>> Reported-by: syzbot+fe63f377148a6371a9db@syzkaller.appspotmail.com >>>> Tested-by: syzbot+fe63f377148a6371a9db@syzkaller.appspotmail.com >>>> Signed-off-by: Alan Huang >>>=20 >>> So pcpu_alloc_mutex -> fs_reclaim? >>>=20 >>> That's really awkward; seems like something that might invite more >>> issues. We can apply your fix if we need to, but I want to hear with = the >>> percpu people have to say first. >>>=20 >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>> WARNING: possible circular locking dependency detected >>> 6.14.0-rc2-syzkaller-00039-g09fbf3d50205 #0 Not tainted >>> ------------------------------------------------------ >>> syz.0.21/5625 is trying to acquire lock: >>> ffffffff8ea19608 (pcpu_alloc_mutex){+.+.}-{4:4}, at: = pcpu_alloc_noprof+0x293/0x1760 mm/percpu.c:1782 >>>=20 >>> but task is already holding lock: >>> ffff888051401c68 (&bc->lock){+.+.}-{4:4}, at: = bch2_btree_node_mem_alloc+0x559/0x16f0 fs/bcachefs/btree_cache.c:804 >>>=20 >>> which lock already depends on the new lock. >>>=20 >>>=20 >>> the existing dependency chain (in reverse order) is: >>>=20 >>> -> #2 (&bc->lock){+.+.}-{4:4}: >>> lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5851 >>> __mutex_lock_common kernel/locking/mutex.c:585 [inline] >>> __mutex_lock+0x19c/0x1010 kernel/locking/mutex.c:730 >>> bch2_btree_cache_scan+0x184/0xec0 fs/bcachefs/btree_cache.c:482 >>> do_shrink_slab+0x72d/0x1160 mm/shrinker.c:437 >>> shrink_slab+0x1093/0x14d0 mm/shrinker.c:664 >>> shrink_one+0x43b/0x850 mm/vmscan.c:4868 >>> shrink_many mm/vmscan.c:4929 [inline] >>> lru_gen_shrink_node mm/vmscan.c:5007 [inline] >>> shrink_node+0x37c5/0x3e50 mm/vmscan.c:5978 >>> kswapd_shrink_node mm/vmscan.c:6807 [inline] >>> balance_pgdat mm/vmscan.c:6999 [inline] >>> kswapd+0x20f3/0x3b10 mm/vmscan.c:7264 >>> kthread+0x7a9/0x920 kernel/kthread.c:464 >>> ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:148 >>> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 >>>=20 >>> -> #1 (fs_reclaim){+.+.}-{0:0}: >>> lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5851 >>> __fs_reclaim_acquire mm/page_alloc.c:3853 [inline] >>> fs_reclaim_acquire+0x88/0x130 mm/page_alloc.c:3867 >>> might_alloc include/linux/sched/mm.h:318 [inline] >>> slab_pre_alloc_hook mm/slub.c:4066 [inline] >>> slab_alloc_node mm/slub.c:4144 [inline] >>> __do_kmalloc_node mm/slub.c:4293 [inline] >>> __kmalloc_noprof+0xae/0x4c0 mm/slub.c:4306 >>> kmalloc_noprof include/linux/slab.h:905 [inline] >>> kzalloc_noprof include/linux/slab.h:1037 [inline] >>> pcpu_mem_zalloc mm/percpu.c:510 [inline] >>> pcpu_alloc_chunk mm/percpu.c:1430 [inline] >>> pcpu_create_chunk+0x57/0xbc0 mm/percpu-vm.c:338 >>> pcpu_balance_populated mm/percpu.c:2063 [inline] >>> pcpu_balance_workfn+0xc4d/0xd40 mm/percpu.c:2200 >>> process_one_work kernel/workqueue.c:3236 [inline] >>> process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3317 >>> worker_thread+0x870/0xd30 kernel/workqueue.c:3398 >>> kthread+0x7a9/0x920 kernel/kthread.c:464 >>> ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:148 >>> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 >>>=20 >>> -> #0 (pcpu_alloc_mutex){+.+.}-{4:4}: >>> check_prev_add kernel/locking/lockdep.c:3163 [inline] >>> check_prevs_add kernel/locking/lockdep.c:3282 [inline] >>> validate_chain+0x18ef/0x5920 kernel/locking/lockdep.c:3906 >>> __lock_acquire+0x1397/0x2100 kernel/locking/lockdep.c:5228 >>> lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5851 >>> __mutex_lock_common kernel/locking/mutex.c:585 [inline] >>> __mutex_lock+0x19c/0x1010 kernel/locking/mutex.c:730 >>> pcpu_alloc_noprof+0x293/0x1760 mm/percpu.c:1782 >>> __six_lock_init+0x104/0x150 fs/bcachefs/six.c:876 >>> bch2_btree_lock_init+0x38/0x100 fs/bcachefs/btree_locking.c:12 >>> bch2_btree_node_mem_alloc+0x565/0x16f0 = fs/bcachefs/btree_cache.c:807 >>> __bch2_btree_node_alloc fs/bcachefs/btree_update_interior.c:304 = [inline] >>> bch2_btree_reserve_get+0x2df/0x1890 = fs/bcachefs/btree_update_interior.c:532 >>> bch2_btree_update_start+0xe56/0x14e0 = fs/bcachefs/btree_update_interior.c:1230 >>> bch2_btree_split_leaf+0x121/0x880 = fs/bcachefs/btree_update_interior.c:1851 >>> bch2_trans_commit_error+0x212/0x1380 = fs/bcachefs/btree_trans_commit.c:908 >>> __bch2_trans_commit+0x812b/0x97a0 = fs/bcachefs/btree_trans_commit.c:1085 >>> bch2_trans_commit fs/bcachefs/btree_update.h:183 [inline] >>> bch2_trans_mark_metadata_bucket+0x47a/0x17b0 = fs/bcachefs/buckets.c:1043 >>> bch2_trans_mark_metadata_sectors fs/bcachefs/buckets.c:1060 = [inline] >>> __bch2_trans_mark_dev_sb fs/bcachefs/buckets.c:1100 [inline] >>> bch2_trans_mark_dev_sb+0x3f6/0x820 fs/bcachefs/buckets.c:1128 >>> bch2_trans_mark_dev_sbs_flags+0x6be/0x720 = fs/bcachefs/buckets.c:1138 >>> bch2_fs_initialize+0xba0/0x1610 fs/bcachefs/recovery.c:1149 >>> bch2_fs_start+0x36d/0x610 fs/bcachefs/super.c:1042 >>> bch2_fs_get_tree+0xd8d/0x1740 fs/bcachefs/fs.c:2203 >>> vfs_get_tree+0x90/0x2b0 fs/super.c:1814 >>> do_new_mount+0x2be/0xb40 fs/namespace.c:3560 >>> do_mount fs/namespace.c:3900 [inline] >>> __do_sys_mount fs/namespace.c:4111 [inline] >>> __se_sys_mount+0x2d6/0x3c0 fs/namespace.c:4088 >>> do_syscall_x64 arch/x86/entry/common.c:52 [inline] >>> do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 >>> entry_SYSCALL_64_after_hwframe+0x77/0x7f >>>=20 >>> other info that might help us debug this: >>>=20 >>> Chain exists of: >>> pcpu_alloc_mutex --> fs_reclaim --> &bc->lock >>>=20 >>> Possible unsafe locking scenario: >>>=20 >>> CPU0 CPU1 >>> ---- ---- >>> lock(&bc->lock); >>> lock(fs_reclaim); >>> lock(&bc->lock); >>> lock(pcpu_alloc_mutex); >>>=20 >>> *** DEADLOCK *** >>>=20 >>> 4 locks held by syz.0.21/5625: >>> #0: ffff888051400278 (&c->state_lock){+.+.}-{4:4}, at: = bch2_fs_start+0x45/0x610 fs/bcachefs/super.c:1010 >>> #1: ffff888051404378 (&c->btree_trans_barrier){.+.+}-{0:0}, at: = srcu_lock_acquire include/linux/srcu.h:164 [inline] >>> #1: ffff888051404378 (&c->btree_trans_barrier){.+.+}-{0:0}, at: = srcu_read_lock include/linux/srcu.h:256 [inline] >>> #1: ffff888051404378 (&c->btree_trans_barrier){.+.+}-{0:0}, at: = __bch2_trans_get+0x7e4/0xd30 fs/bcachefs/btree_iter.c:3377 >>> #2: ffff8880514266d0 (&c->gc_lock){.+.+}-{4:4}, at: = bch2_btree_update_start+0x682/0x14e0 = fs/bcachefs/btree_update_interior.c:1180 >>> #3: ffff888051401c68 (&bc->lock){+.+.}-{4:4}, at: = bch2_btree_node_mem_alloc+0x559/0x16f0 fs/bcachefs/btree_cache.c:804 >>>=20 >>> stack backtrace: >>> CPU: 0 UID: 0 PID: 5625 Comm: syz.0.21 Not tainted = 6.14.0-rc2-syzkaller-00039-g09fbf3d50205 #0 >>> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS = 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 >>> Call Trace: >>> >>> __dump_stack lib/dump_stack.c:94 [inline] >>> dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 >>> print_circular_bug+0x13a/0x1b0 kernel/locking/lockdep.c:2076 >>> check_noncircular+0x36a/0x4a0 kernel/locking/lockdep.c:2208 >>> check_prev_add kernel/locking/lockdep.c:3163 [inline] >>> check_prevs_add kernel/locking/lockdep.c:3282 [inline] >>> validate_chain+0x18ef/0x5920 kernel/locking/lockdep.c:3906 >>> __lock_acquire+0x1397/0x2100 kernel/locking/lockdep.c:5228 >>> lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5851 >>> __mutex_lock_common kernel/locking/mutex.c:585 [inline] >>> __mutex_lock+0x19c/0x1010 kernel/locking/mutex.c:730 >>> pcpu_alloc_noprof+0x293/0x1760 mm/percpu.c:1782 >>> __six_lock_init+0x104/0x150 fs/bcachefs/six.c:876 >>> bch2_btree_lock_init+0x38/0x100 fs/bcachefs/btree_locking.c:12 >>> bch2_btree_node_mem_alloc+0x565/0x16f0 fs/bcachefs/btree_cache.c:807 >>> __bch2_btree_node_alloc fs/bcachefs/btree_update_interior.c:304 = [inline] >>> bch2_btree_reserve_get+0x2df/0x1890 = fs/bcachefs/btree_update_interior.c:532 >>> bch2_btree_update_start+0xe56/0x14e0 = fs/bcachefs/btree_update_interior.c:1230 >>> bch2_btree_split_leaf+0x121/0x880 = fs/bcachefs/btree_update_interior.c:1851 >>> bch2_trans_commit_error+0x212/0x1380 = fs/bcachefs/btree_trans_commit.c:908 >>> __bch2_trans_commit+0x812b/0x97a0 = fs/bcachefs/btree_trans_commit.c:1085 >>> bch2_trans_commit fs/bcachefs/btree_update.h:183 [inline] >>> bch2_trans_mark_metadata_bucket+0x47a/0x17b0 = fs/bcachefs/buckets.c:1043 >>> bch2_trans_mark_metadata_sectors fs/bcachefs/buckets.c:1060 [inline] >>> __bch2_trans_mark_dev_sb fs/bcachefs/buckets.c:1100 [inline] >>> bch2_trans_mark_dev_sb+0x3f6/0x820 fs/bcachefs/buckets.c:1128 >>> bch2_trans_mark_dev_sbs_flags+0x6be/0x720 fs/bcachefs/buckets.c:1138 >>> bch2_fs_initialize+0xba0/0x1610 fs/bcachefs/recovery.c:1149 >>> bch2_fs_start+0x36d/0x610 fs/bcachefs/super.c:1042 >>> bch2_fs_get_tree+0xd8d/0x1740 fs/bcachefs/fs.c:2203 >>> vfs_get_tree+0x90/0x2b0 fs/super.c:1814 >>> do_new_mount+0x2be/0xb40 fs/namespace.c:3560 >>> do_mount fs/namespace.c:3900 [inline] >>> __do_sys_mount fs/namespace.c:4111 [inline] >>> __se_sys_mount+0x2d6/0x3c0 fs/namespace.c:4088 >>> do_syscall_x64 arch/x86/entry/common.c:52 [inline] >>> do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 >>> entry_SYSCALL_64_after_hwframe+0x77/0x7f >>> RIP: 0033:0x7fcaed38e58a >>> Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb a6 e8 de 1a 00 00 66 2e 0f = 1f 84 00 00 00 00 00 0f 1f 40 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d = 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 >>> RSP: 002b:00007fcaec5fde68 EFLAGS: 00000246 ORIG_RAX: = 00000000000000a5 >>> RAX: ffffffffffffffda RBX: 00007fcaec5fdef0 RCX: 00007fcaed38e58a >>> RDX: 00004000000000c0 RSI: 0000400000000180 RDI: 00007fcaec5fdeb0 >>> RBP: 00004000000000c0 R08: 00007fcaec5fdef0 R09: 0000000000000000 >>>=20 >>>> --- >>>> fs/bcachefs/six.c | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>>=20 >>>> diff --git a/fs/bcachefs/six.c b/fs/bcachefs/six.c >>>> index 7e7c66a1e1a6..ccdc6d496910 100644 >>>> --- a/fs/bcachefs/six.c >>>> +++ b/fs/bcachefs/six.c >>>> @@ -873,7 +873,7 @@ void __six_lock_init(struct six_lock *lock, = const char *name, >>>> * failure if they wish by checking lock->readers, but generally >>>> * will not want to treat it as an error. >>>> */ >>>> - lock->readers =3D alloc_percpu(unsigned); >>>> + lock->readers =3D alloc_percpu_gfp(unsigned, = GFP_NOWAIT|__GFP_NOWARN); >>>> } >>>> #endif >>>> } >>>> --=20 >>>> 2.47.0 >>>>=20 >>=20