Re: freeze vs freezer

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Kyle Moffett
Date: Friday, January 4, 2008 - 6:38 pm

On Jan 04, 2008, at 15:54:06, Oliver Neukum wrote:

I don't think it makes sense for the kernel to try to keep track of  
hard data dependencies for FUSE filesystems, or to even *attempt* to  
auto-suspend them.  You should instead allow a privileged program to  
initiate a "freeze-and-flush" operation on a particular FUSE  
filesystem and optionally wait for it to finish.  Then your userspace  
would be configured with the appropriate data dependencies and would  
stop FUSE filesystems in the appropriate order.

In addition, the kernel would automatically understand  
ext3=>loopback=>fuse, and when asked to freeze the "fuse" part, it  
would first freeze the "ext3" and the "loopback" parts using similar  
mechanisms as device-mapper currently uses when you do "dmsetup  
suspend mydev" followed by "echo 0 $SIZE snapshot /dev/mapper/mydev- 
base /dev/mapper/mydev-snap-back p 8 | dmsetup load mydev"  (IE: when  
you create a snapshot of a given device).

Naturally userspace could deadlock itself (although not the kernel)  
by freezing a block device and then attempting to access it, but  
since the "freeze" operation is limited to root this is not a big  
issue.  The way to freeze all filesystems safely would be to clone a  
new mount namespace, mlockall(), mount a tmpfs, pivot_root() into the  
tmpfs, bind-mount the filesystems you want to freeze directly onto  
subdirectories of the tmpfs, and then freeze them in an appropriate  
order.

Besides which the worst-case is a pretty straightforward non-critical  
failure; you might fail to fully sync a FUSE filesystem because its  
daemon is asleep waiting on something (possibly even just sitting in  
a "sleep(10000)" call with all signals masked).  You simply need to  
make sure that all tasks are asleep outside of driver critical  
sections so that you can properly suspend your device tree.

Cheers,
Kyle Moffett
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
freeze vs freezer, Jeremy Fitzhardinge, (Wed Nov 21, 8:54 pm)
Re: freeze vs freezer, Rafael J. Wysocki, (Fri Nov 23, 4:47 pm)
Re: freeze vs freezer, Jeremy Fitzhardinge, (Mon Nov 26, 11:44 am)
Re: freeze vs freezer, David Chinner, (Mon Nov 26, 2:17 pm)
Re: freeze vs freezer, Rafael J. Wysocki, (Mon Nov 26, 2:20 pm)
Re: freeze vs freezer, Rafael J. Wysocki, (Mon Nov 26, 2:53 pm)
Re: freeze vs freezer, Matthew Garrett, (Mon Nov 26, 10:38 pm)
Re: freeze vs freezer, Rafael J. Wysocki, (Tue Nov 27, 10:40 am)
Re: freeze vs freezer, Kyle Moffett, (Tue Nov 27, 1:33 pm)
Re: freeze vs freezer, Rafael J. Wysocki, (Tue Nov 27, 4:01 pm)
Re: freeze vs freezer, Kyle Moffett, (Tue Nov 27, 4:14 pm)
Re: freeze vs freezer, Jeremy Fitzhardinge, (Tue Nov 27, 4:32 pm)
Re: freeze vs freezer, Pavel Machek, (Wed Jan 2, 9:02 am)
Re: freeze vs freezer, Nigel Cunningham, (Wed Jan 2, 2:30 pm)
Re: freeze vs freezer, Rafael J. Wysocki, (Wed Jan 2, 3:04 pm)
Re: freeze vs freezer, Nigel Cunningham, (Thu Jan 3, 2:19 am)
Re: freeze vs freezer, Oliver Neukum, (Thu Jan 3, 2:47 am)
Re: freeze vs freezer, Nigel Cunningham, (Thu Jan 3, 2:52 am)
Re: freeze vs freezer, Oliver Neukum, (Thu Jan 3, 4:15 am)
Re: freeze vs freezer, Rafael J. Wysocki, (Thu Jan 3, 3:31 pm)
Re: freeze vs freezer, Oliver Neukum, (Fri Jan 4, 1:54 pm)
Re: freeze vs freezer, Kyle Moffett, (Fri Jan 4, 6:38 pm)
Re: freeze vs freezer, Pavel Machek, (Sat Jan 5, 2:18 pm)
Re: freeze vs freezer, Nigel Cunningham, (Sat Jan 5, 4:01 pm)
Re: freeze vs freezer, Pavel Machek, (Mon Jun 23, 12:16 am)
Re: freeze vs freezer, Henrique de Moraes H ..., (Mon Jun 23, 7:00 am)
Re: freeze vs freezer, Elias Oltmanns, (Tue Jun 24, 1:08 am)
Re: freeze vs freezer, Pavel Machek, (Thu Jun 26, 8:09 am)
Re: [xfs-masters] Re: freeze vs freezer, Dave Chinner, (Sun Jun 29, 3:12 pm)
Re: [xfs-masters] Re: freeze vs freezer, Rafael J. Wysocki, (Sun Jun 29, 4:22 pm)
Re: [xfs-masters] Re: freeze vs freezer, Christoph Hellwig, (Sun Jun 29, 11:11 pm)
Re: [xfs-masters] Re: freeze vs freezer, Dave Chinner, (Sun Jun 29, 11:29 pm)
Re: [xfs-masters] Re: freeze vs freezer, Jeremy Fitzhardinge, (Sun Jun 29, 11:37 pm)
Re: [xfs-masters] Re: freeze vs freezer, Dave Chinner, (Mon Jun 30, 5:33 am)
Re: [xfs-masters] Re: freeze vs freezer, Rafael J. Wysocki, (Mon Jun 30, 1:34 pm)
Re: [xfs-masters] Re: freeze vs freezer, Rafael J. Wysocki, (Mon Jun 30, 2:00 pm)
Re: [xfs-masters] Re: freeze vs freezer, Dave Chinner, (Mon Jun 30, 3:21 pm)
Re: [xfs-masters] Re: freeze vs freezer, Rafael J. Wysocki, (Mon Jun 30, 3:38 pm)
Re: [xfs-masters] Re: freeze vs freezer, Dave Chinner, (Mon Jun 30, 11:38 pm)
Re: [xfs-masters] Re: freeze vs freezer, Pavel Machek, (Tue Jul 1, 1:59 am)
Re: [xfs-masters] Re: freeze vs freezer, Rafael J. Wysocki, (Tue Jul 1, 7:35 am)
Re: [xfs-masters] Re: freeze vs freezer, Dave Chinner, (Tue Jul 1, 2:12 pm)
Re: [xfs-masters] Re: freeze vs freezer, Rafael J. Wysocki, (Tue Jul 1, 2:21 pm)
Re: [xfs-masters] Re: freeze vs freezer, Eric Sandeen, (Thu Jul 3, 12:43 pm)