All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Jan Kara <jack@suse.cz>
Cc: Christian Brauner <brauner@kernel.org>,
	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 10:49:22 -0400	[thread overview]
Message-ID: <bd6e3abddda328de20570e866b54c975127e202c.camel@HansenPartnership.com> (raw)
In-Reply-To: <7clcr53mw5bdd6lfocn6gw7nykqnqxknlaxaagwrb6hmxpyvmo@dxfk3jachnas>

On Mon, 2025-03-31 at 12:36 +0200, Jan Kara wrote:
> On Sat 29-03-25 13:02:32, James Bottomley wrote:
> > On Sat, 2025-03-29 at 10:04 -0400, James Bottomley wrote:
> > > On Sat, 2025-03-29 at 09:42 +0100, Christian Brauner wrote:
> > > > Add the necessary infrastructure changes to support freezing
> > > > for
> > > > suspend and hibernate.
> > > > 
> > > > Just got back from LSFMM. So still jetlagged and likelihood of
> > > > bugs
> > > > increased. This should all that's needed to wire up power.
> > > > 
> > > > This will be in vfs-6.16.super shortly.
> > > > 
> > > > ---
> > > > Changes in v2:
> > > > - Don't grab reference in the iterator make that a requirement
> > > > for
> > > > the callers that need custom behavior.
> > > > - Link to v1:
> > > > https://lore.kernel.org/r/20250328-work-freeze-v1-0-a2c3a6b0e7a6@kernel.org
> > > 
> > > Given I've been a bit quiet on this, I thought I'd better explain
> > > what's going on: I do have these built, but I made the mistake of
> > > doing a dist-upgrade on my testing VM master image and it pulled
> > > in a
> > > version of systemd (257.4-3) that has a broken hibernate.  Since
> > > I
> > > upgraded in place I don't have the old image so I'm spending my
> > > time
> > > currently debugging systemd ... normal service will hopefully
> > > resume
> > > shortly.
> > 
> > I found the systemd bug
> > 
> > https://github.com/systemd/systemd/issues/36888
> > 
> > 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.
> 
> As Christian wrote, it seems systemd-journald does a memory store to
> mmapped file and gets blocked on sb_start_write() while doing the
> page fault. What's strange is that R state. Is the task really
> executing on some CPU or it only has 'R' state (i.e., got woken but
> never scheduled)?

Yes, ps shows it definitely stuck in R state.  The trace above
identifies the rwsem being at set_current_state() which seems to imply
it never returns from schedule() even though it's in state R.

I've actually managed to reproduce this now just doing filesystem
freeze and thaw without using the freezer, so I'll continue
investigating.

Regards,

James


  reply	other threads:[~2025-03-31 14:49 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
2025-03-31 10:36             ` Jan Kara
2025-03-31 14:49               ` James Bottomley [this message]
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=bd6e3abddda328de20570e866b54c975127e202c.camel@HansenPartnership.com \
    --to=james.bottomley@hansenpartnership.com \
    --cc=boqun.feng@gmail.com \
    --cc=brauner@kernel.org \
    --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.