mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Ed Tsai (蔡宗軒)" <Ed.Tsai@mediatek.com>
To: "jaegeuk@kernel.org" <jaegeuk@kernel.org>,
	"axboe@kernel.dk" <axboe@kernel.dk>,
	"chao@kernel.org" <chao@kernel.org>
Cc: "Light Hsieh (謝明燈)" <Light.Hsieh@mediatek.com>,
	"linux-f2fs-devel@lists.sourceforge.net"
	<linux-f2fs-devel@lists.sourceforge.net>,
	"linux-mediatek@lists.infradead.org"
	<linux-mediatek@lists.infradead.org>,
	"Chun-Hung Wu (巫駿宏)" <Chun-hung.Wu@mediatek.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>
Subject: f2fs: possible circular locking dependency detected
Date: Wed, 18 Jun 2025 06:32:45 +0000	[thread overview]
Message-ID: <94cbae37522acf30ae30d8f42d8b2d9d62c0c18b.camel@mediatek.com> (raw)

Hi,
 
We get a possible kernel circular locking dependency with kernel
version 6.12.22-android16-3-g03cf4641deee-4k.
 
Lock approve log is as below:

kswapd0:
kswapd0: ======================================================
kswapd0: WARNING: possible circular locking dependency detected
kswapd0: 6.12.22-android16-3-g03cf4641deee-4k #1 Tainted: G         OE
kswapd0: ------------------------------------------------------
kswapd0: kswapd0/95 is trying to acquire lock:
ffffff801b6f5640 (sb_internal){.+.+}-{0:0}, at:
f2fs_evict_inode+0x220/0x7d8
kswapd0:
but task is already holding lock:
ffffffd5c35d6070 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat+0xe8/0xe10
kswapd0:
which lock already depends on the new lock.
kswapd0:
the existing dependency chain (in reverse order) is:
kswapd0:
-> #3 (fs_reclaim){+.+.}-{0:0}:
kswapd0:        fs_reclaim_acquire+0x5c/0xc4
kswapd0:        blk_mq_alloc_and_init_hctx+0x318/0x440
kswapd0:        blk_mq_realloc_hw_ctxs+0x70/0x480
kswapd0:        blk_mq_init_allocated_queue+0x134/0x610
kswapd0:        __blk_mq_alloc_disk+0xb4/0x164
kswapd0:        loop_add+0x190/0x3ac
kswapd0:        loop_init+0xec/0x114
kswapd0:        do_one_initcall+0x184/0x464
kswapd0:        do_initcall_level+0xdc/0x1b0
kswapd0:        do_initcalls+0x70/0xc0
kswapd0:        do_basic_setup+0x1c/0x28
kswapd0:        kernel_init_freeable+0x14c/0x1c8
kswapd0:        kernel_init+0x20/0x1ac
kswapd0:        ret_from_fork+0x10/0x20
kswapd0:
-> #2 (&q->sysfs_lock){+.+.}-{3:3}:
kswapd0:        __mutex_lock_common+0xe0/0x1944
kswapd0:        mutex_lock_nested+0x2c/0x3c
kswapd0:        queue_attr_store+0x88/0xf0
kswapd0:        sysfs_kf_write+0x98/0xc8
kswapd0:        kernfs_fop_write_iter+0x12c/0x1d4
kswapd0:        vfs_write+0x340/0x3ac
kswapd0:        ksys_write+0x78/0xe8
kswapd0:        __arm64_sys_write+0x1c/0x2c
kswapd0:        invoke_syscall+0x58/0x10c
kswapd0:        el0_svc_common+0xa8/0xdc
kswapd0:        do_el0_svc+0x1c/0x28
kswapd0:        el0_svc+0x50/0xac
kswapd0:        el0t_64_sync_handler+0x70/0xbc
kswapd0:        el0t_64_sync+0x1a8/0x1ac
kswapd0:
-> #1 (&q->q_usage_counter(io)#77){++++}-{0:0}:
kswapd0:        __submit_bio+0xdc/0x1a8
kswapd0:        submit_bio_noacct_nocheck+0x1a4/0x390
kswapd0:        submit_bio_noacct+0x308/0x49c
kswapd0:        submit_bio+0x158/0x174
kswapd0:        f2fs_submit_read_bio+0x8c/0x134
kswapd0:        f2fs_submit_page_bio+0x260/0x2b4
kswapd0:        read_node_page+0xb8/0x190
kswapd0:        __get_node_folio+0x90/0x4c0
kswapd0:        truncate_dnode+0x40/0x28c
kswapd0:        f2fs_truncate_inode_blocks+0x35c/0x788
kswapd0:        f2fs_do_truncate_blocks+0x268/0x9a4
kswapd0:        f2fs_truncate_blocks+0x68/0x100
kswapd0:        f2fs_truncate+0xbc/0x174
kswapd0:        f2fs_evict_inode+0x298/0x7d8
kswapd0:        evict+0x1e8/0x43c
kswapd0:        iput+0x274/0x2c0
kswapd0:        do_unlinkat+0x1ac/0x2d0
kswapd0:        __arm64_sys_unlinkat+0x4c/0x64
kswapd0:        invoke_syscall+0x58/0x10c
kswapd0:        el0_svc_common+0xa8/0xdc
kswapd0:        do_el0_svc+0x1c/0x28
kswapd0:        el0_svc+0x50/0xac
kswapd0:        el0t_64_sync_handler+0x70/0xbc
kswapd0:        el0t_64_sync+0x1a8/0x1ac
kswapd0:
-> #0 (sb_internal){.+.+}-{0:0}:
kswapd0:        __lock_acquire+0x18a8/0x3160
kswapd0:        lock_acquire+0x134/0x2b0
kswapd0:        sb_start_intwrite+0x58/0x150
kswapd0:        f2fs_evict_inode+0x220/0x7d8
kswapd0:        evict+0x1e8/0x43c
kswapd0:        iput+0x274/0x2c0
kswapd0:        f2fs_evict_inode+0x70/0x7d8
kswapd0:        evict+0x1e8/0x43c
kswapd0:        prune_icache_sb+0xa0/0x104
kswapd0:        super_cache_scan+0x13c/0x1b0
kswapd0:        do_shrink_slab+0x2e0/0x798
kswapd0:        shrink_slab+0x224/0x894
kswapd0:        shrink_one+0xb8/0x228
kswapd0:        shrink_node+0xd78/0x1094
kswapd0:        balance_pgdat+0x814/0xe10
kswapd0:        kswapd+0x2fc/0x5a4
kswapd0:        kthread+0x110/0x134
kswapd0:        ret_from_fork+0x10/0x20


To further clarify the stack #3:
0xffffffc0807b77b0: might_alloc at kernel-
6.12/include/linux/sched/mm.h:318
   (inlined by) xa_insert at kernel-6.12/include/linux/xarray.h:783
   (inlined by) blk_mq_init_hctx at kernel-6.12/block/blk-mq.c:3943
   (inlined by) blk_mq_alloc_and_init_hctx at kernel-6.12/block/blk-
mq.c:4476
 
Best,
Ed Tsai (蔡宗軒)
 

             reply	other threads:[~2025-06-18  6:32 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-18  6:32 Ed Tsai (蔡宗軒) [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-06-18  6:27 Ed Tsai (蔡宗軒)

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=94cbae37522acf30ae30d8f42d8b2d9d62c0c18b.camel@mediatek.com \
    --to=ed.tsai@mediatek.com \
    --cc=Chun-hung.Wu@mediatek.com \
    --cc=Light.Hsieh@mediatek.com \
    --cc=axboe@kernel.dk \
    --cc=chao@kernel.org \
    --cc=jaegeuk@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®