Re: [Lsf-pc] [LSF/MM/BPF TOPIC] Filesystem Suspend Resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2025-03-24 at 12:38 +0100, Jan Kara wrote:
> On Fri 21-03-25 13:00:24, James Bottomley via Lsf-pc wrote:
> > On Fri, 2025-03-21 at 08:34 -0400, James Bottomley wrote:
> > [...]
> > > Let me digest all that and see if we have more hope this time
> > > around.
> > 
> > OK, I think I've gone over it all.  The biggest problem with
> > resurrecting the patch was bugs in ext3, which isn't a problem now.
> > Most of the suspend system has been rearchitected to separate
> > suspending user space processes from kernel ones.  The sync it
> > currently does occurs before even user processes are frozen.  I
> > think
> > (as most of the original proposals did) that we just do freeze all
> > supers (using the reverse list) after user processes are frozen but
> > just before kernel threads are (this shouldn't perturb the image
> > allocation in hibernate, which was another source of bugs in xfs).
> 
> So as far as my memory serves the fundamental problem with this
> approach was FUSE - once userspace is frozen, you cannot write to
> FUSE filesystems so filesystem freezing of FUSE would block if
> userspace is already suspended. You may even have a setup like:
> 
> bdev <- fs <- FUSE filesystem <- loopback file <- loop device <-
> another fs
> 
> So you really have to be careful to freeze this stack without causing
> deadlocks.

Ah, so that explains why the sys_sync() sits in suspend resume *before*
freezing userspace ... that always appeared odd to me.

>  So you need to be freezing userspace after filesystems are
> frozen but then you have to deal with the fact that parts of your
> userspace will be blocked in the kernel (trying to do some write)
> waiting for the filesystem to thaw. But it might be tractable these
> days since I have a vague recollection that system suspend is now
> able to gracefully handle even tasks in uninterruptible sleep.

There is another thing I thought about: we don't actually have to
freeze across the sleep.  It might be possible simply to invoke
freeze/thaw where sys_sync() is now done to get a better on stable
storage image?  That should have fewer deadlock issues.

> > There's a final wrinkle in that if I plumb efivarfs into all this,
> > it needs to know whether it was a hibernate or suspend, but I can
> > add that as an extra freeze_holder flag.
> > 
> > This looked like such a tiny can of worms when I opened it; now it
> > seems to be a lot bigger on the inside than it was on the outside,
> > sigh.
> 
> Never underestimate the amount of worms in a can ;)

Tell me about it ...

Regards,

James






[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux