From: "Theodore Ts'o" <tytso@mit.edu>
To: Andres Freund <andres@anarazel.de>
Cc: "Thorsten Leemhuis" <regressions@leemhuis.info>,
"Shreeya Patel" <shreeya.patel@collabora.com>,
linux-ext4@vger.kernel.org,
"Ricardo Cañuelo" <ricardo.canuelo@collabora.com>,
gustavo.padovan@collabora.com, zsm@google.com,
garrick@google.com,
"Linux regressions mailing list" <regressions@lists.linux.dev>
Subject: Re: task hung in ext4_fallocate #2
Date: Tue, 17 Oct 2023 20:43:35 -0400 [thread overview]
Message-ID: <20231018004335.GA593012@mit.edu> (raw)
In-Reply-To: <20231017033725.r6pfo5a4ayqisct7@awork3.anarazel.de>
On Mon, Oct 16, 2023 at 08:37:25PM -0700, Andres Freund wrote:
> I just was able to reproduce the issue, after upgrading to 6.6-rc6 - this time
> it took ~55min of high load (io_uring using branch of postgres, running a
> write heavy transactional workload concurrently with concurrent bulk data
> load) to trigger the issue.
>
> For now I have left the system running, in case there's something you would
> like me to check while the system is hung.
>
> The first hanging task that I observed:
>
> cat /proc/57606/stack
> [<0>] inode_dio_wait+0xd5/0x100
> [<0>] ext4_fallocate+0x12f/0x1040
> [<0>] vfs_fallocate+0x135/0x360
> [<0>] __x64_sys_fallocate+0x42/0x70
> [<0>] do_syscall_64+0x38/0x80
> [<0>] entry_SYSCALL_64_after_hwframe+0x46/0xb0
This stack trace is from some process (presumably postgres) trying to
do a fallocate() system call:
/* Wait all existing dio workers, newcomers will block on i_rwsem */
inode_dio_wait(inode);
The reason for this is that we can't manipulate the extent tree until
any data block I/Os comlplete. This will block until
iomap_dio_complete() in fs/iomap/direct-io.c calls inode_dio_end().
> [ 3194.579297] INFO: task iou-wrk-58004:58874 blocked for more than 122 seconds.
> [ 3194.579304] Not tainted 6.6.0-rc6-andres-00001-g01edcfe38260 #77
> [ 3194.579310] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> [ 3194.579314] task:iou-wrk-58004 state:D stack:0 pid:58874 ppid:52606 flags:0x00004000
> [ 3194.579325] Call Trace:
> [ 3194.579329] <TASK>
> [ 3194.579334] __schedule+0x388/0x13e0
> [ 3194.579349] schedule+0x5f/0xe0
> [ 3194.579361] schedule_preempt_disabled+0x15/0x20
> [ 3194.579374] rwsem_down_read_slowpath+0x26e/0x4c0
> [ 3194.579385] down_read+0x44/0xa0
> [ 3194.579393] ext4_file_write_iter+0x432/0xa80
> [ 3194.579407] io_write+0x129/0x420
This could potentially be a interesting stack trace; but this is where
we really need to map the stack address to line numbers. Is that
something you could do?
> Once I hear that you don't want me to test something out on the running
> system, I think a sensible next step could be to compile with lockdep and see
> if that finds a problem?
That's certainly a possibiity. But also please make sure that you can
compile with with debugging information enabled so that we can get
reliable line numbers. I use:
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
CONFIG_DEBUG_INFO_REDUCED=y
Cheers,
- Ted
next prev parent reply other threads:[~2023-10-18 0:44 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-17 3:37 task hung in ext4_fallocate #2 Andres Freund
2023-10-18 0:43 ` Theodore Ts'o [this message]
2023-10-18 2:50 ` Andres Freund
2023-10-18 9:41 ` Andres Freund
2023-10-24 1:12 ` Dave Chinner
2023-10-24 1:36 ` Andres Freund
2023-10-24 14:30 ` Jens Axboe
2023-10-24 18:35 ` Jens Axboe
2023-10-25 0:06 ` Dave Chinner
2023-10-25 0:34 ` Jens Axboe
2023-10-25 15:31 ` Andres Freund
2023-10-25 15:36 ` Jens Axboe
2023-10-25 16:14 ` Andres Freund
2023-10-26 2:48 ` Andres Freund
2023-10-25 19:55 ` Theodore Ts'o
2023-10-25 22:28 ` Dave Chinner
2023-10-20 7:01 ` Linux regression tracking #adding (Thorsten Leemhuis)
2023-10-29 6:28 ` Linux regression tracking #update (Thorsten Leemhuis)
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=20231018004335.GA593012@mit.edu \
--to=tytso@mit.edu \
--cc=andres@anarazel.de \
--cc=garrick@google.com \
--cc=gustavo.padovan@collabora.com \
--cc=linux-ext4@vger.kernel.org \
--cc=regressions@leemhuis.info \
--cc=regressions@lists.linux.dev \
--cc=ricardo.canuelo@collabora.com \
--cc=shreeya.patel@collabora.com \
--cc=zsm@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox