From: Christian Brauner <brauner@kernel.org>
To: James Bottomley <James.Bottomley@hansenpartnership.com>
Cc: jack@suse.cz, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, mcgrof@kernel.org,
hch@infradead.org, david@fromorbit.com, rafael@kernel.org,
djwong@kernel.org, pavel@kernel.org, peterz@infradead.org,
mingo@redhat.com, will@kernel.org, boqun.feng@gmail.com
Subject: Re: [PATCH v2 0/6] Extend freeze support to suspend and hibernate
Date: Mon, 31 Mar 2025 11:13:20 +0200 [thread overview]
Message-ID: <20250331-inkrafttreten-lieder-5396ffd0af7a@brauner> (raw)
In-Reply-To: <3f140c076c3756e84d515b81ee9eeeaf13ca4b42.camel@HansenPartnership.com>
On Sun, Mar 30, 2025 at 10:00:56AM -0400, James Bottomley wrote:
> On Sun, 2025-03-30 at 10:33 +0200, Christian Brauner wrote:
> [...]
> > > I found the systemd bug
> > >
> > > https://github.com/systemd/systemd/issues/36888
> >
> > I don't think that's a systemd bug.
>
> Heh, well I have zero interest in refereeing a turf war between systemd
> and dracut over mismatched expectations. The point for anyone who
> wants to run hibernate tests is that until they both sort this out the
> bug can be fixed by removing the system identifier check from systemd-
> hibernate-resume-generator.
>
> > > And hacked around it, so I can confirm a simple hibernate/resume
> > > works provided the sd_start_write() patches are applied (and the
> > > hooks are plumbed in to pm).
> > >
> > > There is an oddity: the systemd-journald process that would usually
> > > hang hibernate in D wait goes into R but seems to be hung and can't
> > > be killed by the watchdog even with a -9. It's stack trace says
> > > it's still stuck in sb_start_write:
> > >
> > > [<0>] percpu_rwsem_wait.constprop.10+0xd1/0x140
> > > [<0>] ext4_page_mkwrite+0x3c1/0x560 [ext4]
> > > [<0>] do_page_mkwrite+0x38/0xa0
> > > [<0>] do_wp_page+0xd5/0xba0
> > > [<0>] __handle_mm_fault+0xa29/0xca0
> > > [<0>] handle_mm_fault+0x16a/0x2d0
> > > [<0>] do_user_addr_fault+0x3ab/0x810
> > > [<0>] exc_page_fault+0x68/0x150
> > > [<0>] asm_exc_page_fault+0x22/0x30
> > >
> > > So I think there's something funny going on in thaw.
> >
> > My uneducated guess is that it's probably an issue with ext4 freezing
> > and unfreezing. xfs stops workqueues after all writes and pagefault
> > writers have stopped. This is done in ->sync_fs() when it's called
> > from freeze_super(). They are restarted when ->unfreeze_fs is called.
>
> It is possible, but I note that if I do
>
> fsfreeze --freeze /
Freezing the root filesystem from userspace will inevitably lead to an
odd form of deadlock eventually. Either the first accidental request for
opening something as writable or even the call to fsfreeze --unfreeze /
may deadlock.
The most likely explanation for this stacktrace is that the root
filesystem isn't unfrozen. In userspace it's easy enough to trigger by
leaving the filesystem frozen without also freezing userspace processes
accessing that filesystem:
[ 243.232205] INFO: task systemd-journal:539 blocked for more than 120 seconds.
[ 243.239491] Not tainted 6.14.0-g9ad3884269ca #131
[ 243.243771] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 243.248517] task:systemd-journal state:D stack:0 pid:539 tgid:539 ppid:1 task_flags:0x400100 flags:0x00000006
[ 243.253480] Call Trace:
[ 243.254641] <TASK>
[ 243.255663] __schedule+0x61e/0x1080
[ 243.257071] ? percpu_rwsem_wait+0x149/0x1b0
[ 243.258473] schedule+0x3a/0x120
[ 243.259533] percpu_rwsem_wait+0x155/0x1b0
[ 243.260844] ? __pfx_percpu_rwsem_wake_function+0x10/0x10
[ 243.262620] __percpu_down_read+0x83/0x1c0
[ 243.263968] btrfs_page_mkwrite+0x45b/0x890 [btrfs]
[ 243.266828] ? find_held_lock+0x2b/0x80
[ 243.267765] do_page_mkwrite+0x4a/0xb0
[ 243.268698] do_wp_page+0x331/0xdc0
[ 243.269559] __handle_mm_fault+0xb15/0x11d0
[ 243.270566] handle_mm_fault+0xb8/0x2b0
[ 243.271557] do_user_addr_fault+0x20a/0x700
[ 243.272574] exc_page_fault+0x6a/0x200
[ 243.273462] asm_exc_page_fault+0x26/0x30
This happens because systemd-journald mmaps the journal file. It
triggers a pagefault which wants to get pagefault based write access to
the file. But it can't because pagefaults are frozen. So it hangs and as
it's not frozen it will trigger hung task warnings.
IOW, the most likely explanation is that the root filesystem wasn't
unfrozen and systemd-journald wasn't frozen.
next prev parent reply other threads:[~2025-03-31 9:13 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-27 14:06 [RFC PATCH 0/4] vfs freeze/thaw on suspend/resume James Bottomley
2025-03-27 14:06 ` [RFC PATCH 1/4] locking/percpu-rwsem: add freezable alternative to down_read James Bottomley
2025-03-31 19:51 ` James Bottomley
2025-03-31 23:32 ` Christian Brauner
2025-04-01 1:13 ` James Bottomley
2025-04-01 11:20 ` Jan Kara
2025-04-01 12:50 ` Christian Brauner
2025-04-01 12:52 ` James Bottomley
2025-04-02 11:47 ` Jan Kara
2025-03-27 14:06 ` [RFC PATCH 2/4] vfs: make sb_start_write freezable James Bottomley
2025-03-27 17:36 ` Jan Kara
2025-03-27 14:06 ` [RFC PATCH 3/4] fs/super.c: introduce reverse superblock iterator and use it in emergency remount James Bottomley
2025-03-28 11:56 ` Christian Brauner
2025-03-28 12:38 ` James Bottomley
2025-03-28 16:15 ` [PATCH 0/6] Extend freeze support to suspend and hibernate Christian Brauner
2025-03-28 16:15 ` [PATCH 1/6] super: remove pointless s_root checks Christian Brauner
2025-03-28 16:15 ` [PATCH 2/6] super: simplify user_get_super() Christian Brauner
2025-03-28 16:15 ` [PATCH 3/6] super: skip dying superblocks early Christian Brauner
2025-03-28 16:15 ` [PATCH 4/6] super: use a common iterator (Part 1) Christian Brauner
2025-03-28 16:15 ` [PATCH 5/6] super: use common iterator (Part 2) Christian Brauner
2025-03-28 18:58 ` James Bottomley
2025-03-29 7:34 ` Christian Brauner
2025-03-28 16:15 ` [PATCH 6/6] super: add filesystem freezing helpers for suspend and hibernate Christian Brauner
2025-03-29 8:42 ` [PATCH v2 0/6] Extend freeze support to " Christian Brauner
2025-03-29 8:42 ` [PATCH v2 1/6] super: remove pointless s_root checks Christian Brauner
2025-03-31 9:57 ` Jan Kara
2025-06-11 16:26 ` Darrick J. Wong
2025-06-12 12:20 ` Christian Brauner
2025-03-29 8:42 ` [PATCH v2 2/6] super: simplify user_get_super() Christian Brauner
2025-03-31 9:58 ` Jan Kara
2025-03-29 8:42 ` [PATCH v2 3/6] super: skip dying superblocks early Christian Brauner
2025-03-31 10:00 ` Jan Kara
2025-03-29 8:42 ` [PATCH v2 4/6] super: use a common iterator (Part 1) Christian Brauner
2025-03-31 10:01 ` Jan Kara
2025-03-29 8:42 ` [PATCH v2 5/6] super: use common iterator (Part 2) Christian Brauner
2025-03-31 10:07 ` Jan Kara
2025-03-31 10:15 ` Christian Brauner
2025-03-29 8:42 ` [PATCH v2 6/6] super: add filesystem freezing helpers for suspend and hibernate Christian Brauner
2025-03-29 8:46 ` Christian Brauner
2025-03-29 11:30 ` kernel test robot
2025-03-31 10:23 ` Jan Kara
2025-03-31 10:25 ` Christian Brauner
2025-03-29 14:04 ` [PATCH v2 0/6] Extend freeze support to " James Bottomley
2025-03-29 17:02 ` James Bottomley
2025-03-30 8:33 ` Christian Brauner
2025-03-30 11:53 ` Christian Brauner
2025-03-30 14:00 ` James Bottomley
2025-03-31 9:13 ` Christian Brauner [this message]
2025-03-31 10:36 ` Jan Kara
2025-03-31 14:49 ` James Bottomley
2025-03-31 23:33 ` Christian Brauner
2025-03-31 12:42 ` [PATCH 0/2] efivarfs: support freeze/thaw Christian Brauner
2025-03-31 12:42 ` [PATCH 1/2] libfs: export find_next_child() Christian Brauner
2025-03-31 12:42 ` [PATCH 2/2] efivarfs: support freeze/thaw Christian Brauner
2025-03-31 14:46 ` James Bottomley
2025-03-31 15:03 ` Christian Brauner
2025-04-01 19:31 ` James Bottomley
2025-04-02 7:44 ` Christian Brauner
2025-03-31 14:05 ` [PATCH 0/2] " Ard Biesheuvel
2025-04-01 0:32 ` [PATCH 0/6] power: wire-up filesystem freeze/thaw with suspend/resume Christian Brauner
2025-04-01 0:32 ` [PATCH 1/6] ext4: replace kthread freezing with auto fs freezing Christian Brauner
2025-04-01 9:16 ` Jan Kara
2025-04-01 9:35 ` Christian Brauner
2025-04-01 10:08 ` Jan Kara
2025-04-01 0:32 ` [PATCH 2/6] btrfs: " Christian Brauner
2025-04-01 0:32 ` [PATCH 3/6] xfs: " Christian Brauner
2025-04-01 1:11 ` Dave Chinner
2025-04-01 7:17 ` Christian Brauner
2025-04-01 11:35 ` Dave Chinner
2025-04-01 12:45 ` Christian Brauner
2025-04-01 0:32 ` [PATCH 4/6] fs: add owner of freeze/thaw Christian Brauner
2025-04-01 0:32 ` [PATCH 5/6] fs: allow pagefault based writers to be frozen Christian Brauner
2025-04-01 0:32 ` [PATCH 6/6] power: freeze filesystems during suspend/resume Christian Brauner
2025-04-01 8:16 ` [PATCH 0/6] power: wire-up filesystem freeze/thaw with suspend/resume Christian Brauner
2025-04-01 9:32 ` Jan Kara
2025-04-01 13:03 ` Christian Brauner
2025-04-01 16:57 ` Jan Kara
2025-04-02 14:07 ` [PATCH v2 0/4] " Christian Brauner
2025-04-02 14:07 ` [PATCH v2 1/4] fs: add owner of freeze/thaw Christian Brauner
2025-04-03 14:56 ` Jan Kara
2025-04-03 19:33 ` Christian Brauner
2025-04-04 10:24 ` [PATCH] fs: allow nesting with FREEZE_EXCL Christian Brauner
2025-04-07 9:08 ` Christoph Hellwig
2025-05-07 11:18 ` Jan Kara
2025-05-09 10:38 ` Christian Brauner
2025-04-02 14:07 ` [PATCH v2 2/4] fs: allow all writers to be frozen Christian Brauner
2025-04-02 15:32 ` Christian Brauner
2025-04-02 16:03 ` James Bottomley
2025-04-02 16:13 ` Christian Brauner
2025-04-03 14:59 ` Jan Kara
2025-04-02 14:07 ` [PATCH v2 3/4] power: freeze filesystems during suspend/resume Christian Brauner
2025-04-03 16:29 ` Jan Kara
2025-04-02 14:07 ` [PATCH v2 4/4] kernfs: add warning about implementing freeze/thaw Christian Brauner
2025-04-03 15:00 ` Jan Kara
2025-07-20 19:23 ` [PATCH v2 0/4] power: wire-up filesystem freeze/thaw with suspend/resume Askar Safin
2025-07-21 12:09 ` Jan Kara
2025-08-04 5:31 ` Miklos Szeredi
2025-08-04 6:02 ` Askar Safin
2025-08-04 6:51 ` Sergey Senozhatsky
2025-04-01 14:14 ` [PATCH 0/6] " Peter Zijlstra
2025-04-01 14:40 ` Christian Brauner
2025-04-01 14:59 ` Peter Zijlstra
2025-04-01 17:02 ` James Bottomley
2025-04-02 7:46 ` Christian Brauner
2025-04-08 15:43 ` James Bottomley
2025-04-08 17:09 ` Luis Chamberlain
2025-04-08 17:20 ` Luis Chamberlain
2025-04-08 17:26 ` James Bottomley
2025-04-08 17:24 ` James Bottomley
2025-04-09 7:17 ` Christian Brauner
2025-03-27 14:06 ` [RFC PATCH 4/4] vfs: add filesystem freeze/thaw callbacks for power management James Bottomley
2025-03-27 18:20 ` Jan Kara
2025-03-28 14:21 ` James Bottomley
2025-03-28 14:36 ` James Bottomley
2025-03-28 10:08 ` Christian Brauner
2025-03-28 14:14 ` James Bottomley
2025-03-28 15:52 ` Christian Brauner
2025-03-28 16:15 ` James Bottomley
2025-03-29 8:23 ` Christian Brauner
2025-03-28 12:01 ` Christian Brauner
2025-03-28 14:40 ` James Bottomley
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=20250331-inkrafttreten-lieder-5396ffd0af7a@brauner \
--to=brauner@kernel.org \
--cc=James.Bottomley@hansenpartnership.com \
--cc=boqun.feng@gmail.com \
--cc=david@fromorbit.com \
--cc=djwong@kernel.org \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=mingo@redhat.com \
--cc=pavel@kernel.org \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=will@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.