All of lore.kernel.org
 help / color / mirror / Atom feed
* List of filesystems to use generic checkpoint fops
@ 2009-03-27  4:05 Matt Helsley
       [not found] ` <20090327040534.GB27803-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Matt Helsley @ 2009-03-27  4:05 UTC (permalink / raw)
  To: Containers

In case anyone's curious here is my list of filesystems which I think should
have generic_file_checkpoint fops (31):
	adfs
	affs
	befs
	bfs
	btrfs
	cramfs
	ecryptfs
	efs
	fat
	freevxfs
	hfs
	hfsplus
	hpfs
	hppfs
	isofs
	jffs2
	jfs
	minix
	ntfs
	omfs
	openpromfs
	qnx4
	ramfs
	reiserfs
	romfs
	squashfs
	sysv
	ubifs
	udf
	ufs
	xfs

I also added the checkpoint operation to generic_ro_fops since it's used
only in the set of filesystems listed above. For the curious:
	befs
	cramfs
	efs
	freevxfs
	isofs
	romfs
	squashfs

I've got the patches split out per-filesystem even though they are
incredibly tiny. I'll keep rebasing them on the latest git trees from Dave's
kernel.org tree until the checkpoint fop set is ready to be sent to Oren.

The net result is I haven't added any checkpoint operations to filesystems
outside the lists above.

Open ramfs directories aren't checkpointable because, like many special
filesystems, the directories are kept in the dcache with
simple_dir_operations from libfs.c. Filesystems that use it include:
	autofs
	cifs
	debugfs
	devpts
	fuse
	hugetlbfs
	ocfs2
	ramfs

I think I could fix this with a private copy of simple_dir_operations but I
wasn't certain it would work or that it was the best way to handle it. So I've
postponed full ramfs checkpoint support. This means that ramfs files are always
checkpointable but the directories aren't.

A few "regular" filesystems have /proc or debugfs contents (many of them
using the seq_file API). These tend to contain information about the
filesystem or special control interfaces (btrfs). I'm not quite sure
what we'll want to do with these for now. I think eventually we'd add a
checkpoint operation to the seq_file API. My hunch is the majority
of seq_files won't be checkpointable. I also suspect that the
control files won't usually care what the file position is so we may be
able to add generic_file_checkpoint to those after a more careful review of
each one.

It may be easier to remember what's left "TODO" in fs/*:
	9p
	afs
	autofs[4]
	cifs
	coda
	configfs
	debugfs
	devpts
	ext[234] (Dave's handling this)
	(anything that uses dlm)
	fuse
	gfs2
	hostfs
	hugetlbfs
	(anything that uses jbd[2])
	ncpfs
	nfs (I've got patches for NFS but I don't trust them yet and they lack
		support for the seq_file interfaces in /proc)
	ocfs2
	proc (HUGE)
	ramfs
	smbfs (deprecated, so .. never?)
	sysfs

	bad_inode.c (unused outside bad_inode.c so low priority??)
	binfmt_misc.c
	block_dev.c
	char_dev.c (def_chr_fops)
	epoll (eventpoll.c)
	eventfd.c
	fifo.c
	filesystems.c (/proc/filesystems)
	no-block.c
	notify/*
	select.c
	signalfd.c
	locks.c
	pipe.c

I haven't looked outside of fs/* for anything that uses struct file_operations 
-- I'm assuming most of that is for "irregular" filesystems :).

Cheers,
	-Matt

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: List of filesystems to use generic checkpoint fops
       [not found] ` <20090327040534.GB27803-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
@ 2009-03-27 14:56   ` Oren Laadan
       [not found]     ` <49CCE933.5050004-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Oren Laadan @ 2009-03-27 14:56 UTC (permalink / raw)
  To: Matt Helsley; +Cc: Containers



Matt Helsley wrote:
> In case anyone's curious here is my list of filesystems which I think should
> have generic_file_checkpoint fops (31):

Thanks, Matt.

> 	adfs
> 	affs
> 	befs
> 	bfs
> 	btrfs
> 	cramfs
> 	ecryptfs
> 	efs
> 	fat
> 	freevxfs
> 	hfs
> 	hfsplus
> 	hpfs
> 	hppfs
> 	isofs
> 	jffs2
> 	jfs
> 	minix
> 	ntfs
> 	omfs
> 	openpromfs
> 	qnx4
> 	ramfs

I'd think that in the case of ramfs we always need to dump the contents of the
file, or the entire file system, with the checkpoint image.

> 	reiserfs
> 	romfs
> 	squashfs
> 	sysv
> 	ubifs
> 	udf
> 	ufs
> 	xfs
> 
> I also added the checkpoint operation to generic_ro_fops since it's used
> only in the set of filesystems listed above. For the curious:
> 	befs
> 	cramfs
> 	efs
> 	freevxfs
> 	isofs
> 	romfs
> 	squashfs

??

[...]

Oren.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: List of filesystems to use generic checkpoint fops
       [not found]     ` <49CCE933.5050004-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
@ 2009-03-27 15:19       ` Dave Hansen
  2009-03-28  3:19       ` Matt Helsley
  1 sibling, 0 replies; 4+ messages in thread
From: Dave Hansen @ 2009-03-27 15:19 UTC (permalink / raw)
  To: Oren Laadan; +Cc: Containers

On Fri, 2009-03-27 at 10:56 -0400, Oren Laadan wrote:
> 
> >       ramfs
> 
> I'd think that in the case of ramfs we always need to dump the
> contents of the
> file, or the entire file system, with the checkpoint image.

It's really no different than a disk-based one.  We're requiring
somebody to move all the data around between our checkpoint/restart
operation.  If there's data on ramfs that the container needs, then it
needs to get moved just like anything else.  In the OpenVZ case, they
just rsync it.

-- Dave

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: List of filesystems to use generic checkpoint fops
       [not found]     ` <49CCE933.5050004-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
  2009-03-27 15:19       ` Dave Hansen
@ 2009-03-28  3:19       ` Matt Helsley
  1 sibling, 0 replies; 4+ messages in thread
From: Matt Helsley @ 2009-03-28  3:19 UTC (permalink / raw)
  To: Oren Laadan; +Cc: Containers

On Fri, Mar 27, 2009 at 10:56:51AM -0400, Oren Laadan wrote:
> 
> 
> Matt Helsley wrote:
> > In case anyone's curious here is my list of filesystems which I think should
> > have generic_file_checkpoint fops (31):
> 
> Thanks, Matt.

You're welcome!

<snip>
> > 	ramfs
> 
> I'd think that in the case of ramfs we always need to dump the contents of the
> file, or the entire file system, with the checkpoint image.

I anticipated Dave's answer when I lumped ramfs with "regular"
filesystems. To the best of my knowledge it doesn't matter what kind of "block"
device backs these files. Only that the file contents can be migrated somehow
and that they support the seek operation.

Note that procfs is difficult for checkpoint/restart because the contents
often can't be migrated using rsync. Each non-process /proc file probably
will need its own checkpoint operation. I suspect this would frequently need to
be passed through an extended seq_file API much like the checkpoint op
extends the VFS file_operations. 

> > 	reiserfs
> > 	romfs
> > 	squashfs
> > 	sysv
> > 	ubifs
> > 	udf
> > 	ufs
> > 	xfs
> > 
> > I also added the checkpoint operation to generic_ro_fops since it's used
> > only in the set of filesystems listed above. For the curious:
> > 	befs
> > 	cramfs
> > 	efs
> > 	freevxfs
> > 	isofs
> > 	romfs
> > 	squashfs

The patch modifying generic_ro_fops doesn't quite match the pattern
established when patching the other filesystems so I thought it deserved
special mention. The other filesystems all define their own file_operation
structs but these share one.

Amongst other things these filesystems do not allow modifications to their file
contents. Consequently they share generic_ro_fops rather than define their own
file operations. cramfs, isofs, romfs, and squashfs are designed to be static,
offline-generated filesystems so generic_ro_fops makes sense here. I guess befs,
freevxfs, and efs are legacy filesystems and there is little reason to
implement write operations for them.

Cheers,
	-Matt

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-03-28  3:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-27  4:05 List of filesystems to use generic checkpoint fops Matt Helsley
     [not found] ` <20090327040534.GB27803-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-03-27 14:56   ` Oren Laadan
     [not found]     ` <49CCE933.5050004-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-03-27 15:19       ` Dave Hansen
2009-03-28  3:19       ` Matt Helsley

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.