From: bugzilla-daemon@kernel.org
To: linux-xfs@vger.kernel.org
Subject: [Bug 216007] XFS hangs in iowait when extracting large number of files
Date: Fri, 20 May 2022 23:05:26 +0000 [thread overview]
Message-ID: <bug-216007-201763-kKQKjnHvn2@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-216007-201763@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=216007
--- Comment #3 from Dave Chinner (david@fromorbit.com) ---
On Fri, May 20, 2022 at 11:56:06AM +0000, bugzilla-daemon@kernel.org wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=216007
>
> Bug ID: 216007
> Summary: XFS hangs in iowait when extracting large number of
> files
> Product: File System
> Version: 2.5
> Kernel Version: 5.15.32
> Hardware: All
> OS: Linux
> Tree: Mainline
> Status: NEW
> Severity: normal
> Priority: P1
> Component: XFS
> Assignee: filesystem_xfs@kernel-bugs.kernel.org
> Reporter: bugzkernelorg8392@araxon.sk
> Regression: No
>
> Created attachment 301008
> --> https://bugzilla.kernel.org/attachment.cgi?id=301008&action=edit
> output from dmesg after echo w > /proc/sysrq-trigger
>
> Overview:
>
> When I try to extract an uncompressed tar archive (2.6 milion files, 760.3
> GiB
> in size) on newly created (empty) XFS file system, after first low tens of
> gigabytes extracted the process hangs in iowait indefinitely. One CPU core is
> 100% occupied with iowait, the other CPU core is idle (on 2-core Intel
> Celeron
> G1610T).
>
> I have kernel compiled with my .config file. When I try this with a more
> "standard" kernel, the problem is not reproducible.
>
> Steps to Reproduce:
>
> 1) compile the kernel with the attached .config
>
> 2) reboot with this kernel
>
> 3) create a new XFS filesystem on a spare drive (just mkfs.xfs -f <dev>)
>
> 4) mount this new file system
>
> 5) try to extract large amount of data there
>
> Actual results:
>
> After 20-40 GiB written, the process hangs in iowait indefinitely, never
> finishing the archive extraction.
[ 805.233836] task:tar state:D stack: 0 pid: 2492 ppid: 2491
flags:0x00004000
[ 805.233840] Call Trace:
[ 805.233841] <TASK>
[ 805.233842] __schedule+0x1c9/0x510
[ 805.233846] ? lock_timer_base+0x5c/0x80
[ 805.233850] schedule+0x3f/0xa0
[ 805.233853] schedule_timeout+0x7c/0xf0
[ 805.233858] ? init_timer_key+0x30/0x30
[ 805.233862] io_schedule_timeout+0x47/0x70
[ 805.233866] congestion_wait+0x79/0xd0
[ 805.233872] ? wait_woken+0x60/0x60
[ 805.233876] xfs_buf_alloc_pages+0xd0/0x1b0
[ 805.233881] xfs_buf_get_map+0x259/0x300
[ 805.233886] ? xfs_buf_item_init+0x150/0x160
[ 805.233892] xfs_trans_get_buf_map+0xa9/0x120
[ 805.233897] xfs_ialloc_inode_init+0x129/0x2d0
[ 805.233901] ? xfs_ialloc_ag_alloc+0x1df/0x630
[ 805.233904] xfs_ialloc_ag_alloc+0x1df/0x630
[ 805.233908] xfs_dialloc+0x1b4/0x720
[ 805.233912] xfs_create+0x1d7/0x450
[ 805.233917] xfs_generic_create+0x114/0x2d0
[ 805.233922] path_openat+0x510/0xe10
[ 805.233925] do_filp_open+0xad/0x150
[ 805.233929] ? xfs_blockgc_clear_iflag+0x93/0xb0
[ 805.233932] ? xfs_iunlock+0x52/0x90
[ 805.233937] do_sys_openat2+0x91/0x150
[ 805.233942] __x64_sys_openat+0x4e/0x90
[ 805.233946] do_syscall_64+0x43/0x90
[ 805.233952] entry_SYSCALL_64_after_hwframe+0x44/0xae
[ 805.233959] RIP: 0033:0x7f763ccc9572
[ 805.233962] RSP: 002b:00007ffef1391530 EFLAGS: 00000246 ORIG_RAX:
0000000000000101
[ 805.233966] RAX: ffffffffffffffda RBX: 0000000000000000 RCX:
00007f763ccc9572
[ 805.233969] RDX: 00000000000809c1 RSI: 000055b1d5b19270 RDI:
0000000000000004
[ 805.233971] RBP: 0000000000000180 R08: 000000000000c0c0 R09:
000055b1d5b145f0
[ 805.233973] R10: 0000000000000180 R11: 0000000000000246 R12:
0000000000000000
[ 805.233974] R13: 00000000000809c1 R14: 000055b1d5b19270 R15:
000055b1d59d2248
[ 805.233977] </TASK>
It's waiting on memory allocation, which is probably waiting on IO
completion somewhere to clean dirty pages. This suggests there's a
problem with the storage hardware, the storage stack below XFS or
there's an issue with memory cleaning/reclaim stalling and not
making progress.
> Expected Results:
>
> Archive extraction continues smoothly until done.
>
> Build Date & Hardware:
>
> 2022-05-01 on HP ProLiant MicroServer Gen8, 4GB ECC RAM
>
> Additional Information:
>
> No other filesystem tested with the same archive on the same hardware before
> or
> after this (ext2, ext3, ext4, reiserfs3, jfs, nilfs2, f2fs, btrfs, zfs) has
> shown this behavior. When I downgraded the kernel to 5.10.109, the XFS
> started
> working again. Kernel versions higher than 5.15 seem to be affected, I tried
> 5.17.1, 5.17.6 and 5.18.0-rc7, they all hang up after a few minutes.
Doesn't actually look like an XFS problem from the evidence
supplied, though.
What sort of storage subsystem does this machine have? If it's a
spinning disk then you've probably just filled memory
> More could be found here: https://forums.gentoo.org/viewtopic-p-8709116.html
Oh, wait:
"I compiled a more mainstream version of
sys-kernel/gentoo-sources-5.15.32-r1 (removed my .config file and
let genkernel to fill it with default options) and lo and behold, in
this kernel I could not make it go stuck anymore.
[....]
However, after I altered my old kernel config to contain these
values and rebooting, I'm still triggering the bug. It may not be a
XFS issue after all."
From the evidence presented, I'd agree that this doesn't look an
XFS problem, either.
Cheers,
Dave.
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
next prev parent reply other threads:[~2022-05-20 23:05 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-20 11:56 [Bug 216007] New: XFS hangs in iowait when extracting large number of files bugzilla-daemon
2022-05-20 11:56 ` [Bug 216007] " bugzilla-daemon
2022-05-20 20:46 ` bugzilla-daemon
2022-05-20 23:05 ` [Bug 216007] New: " Dave Chinner
2022-05-20 23:05 ` bugzilla-daemon [this message]
2022-05-21 5:14 ` [Bug 216007] " bugzilla-daemon
2022-05-21 22:31 ` Dave Chinner
2022-05-21 22:31 ` bugzilla-daemon
2022-05-23 8:29 ` bugzilla-daemon
2022-05-23 8:31 ` bugzilla-daemon
2022-05-23 10:02 ` bugzilla-daemon
2022-05-23 10:28 ` bugzilla-daemon
2022-05-24 7:54 ` bugzilla-daemon
2022-05-24 10:00 ` bugzilla-daemon
2022-05-24 10:49 ` bugzilla-daemon
2022-05-24 10:52 ` bugzilla-daemon
2022-05-24 10:53 ` bugzilla-daemon
2022-05-24 11:21 ` bugzilla-daemon
2022-05-24 11:48 ` bugzilla-daemon
2022-05-24 11:49 ` bugzilla-daemon
2022-05-25 17:13 ` bugzilla-daemon
2022-05-26 4:04 ` bugzilla-daemon
2022-05-26 8:51 ` bugzilla-daemon
2022-05-26 9:16 ` bugzilla-daemon
2022-05-26 10:26 ` bugzilla-daemon
2022-05-26 10:37 ` bugzilla-daemon
2022-06-04 16:25 ` bugzilla-daemon
2022-06-05 7:51 ` bugzilla-daemon
2022-06-06 7:49 ` bugzilla-daemon
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=bug-216007-201763-kKQKjnHvn2@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@kernel.org \
--cc=linux-xfs@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).