public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Theodore Ts'o <tytso@mit.edu>
Cc: Christoph Hellwig <hch@infradead.org>,
	Junho Ryu <jayr@google.com>,
	hughd@google.com, branto@redhat.com, xfs@oss.sgi.com
Subject: Re: [PATCH 05/10] xfstests: do not unmount tmpfs during remount.
Date: Thu, 12 Dec 2013 11:53:43 +1100	[thread overview]
Message-ID: <20131212005343.GV10988@dastard> (raw)
In-Reply-To: <20131212001655.GA31768@thunk.org>

On Wed, Dec 11, 2013 at 07:16:55PM -0500, Theodore Ts'o wrote:
> On Thu, Dec 12, 2013 at 09:40:12AM +1100, Dave Chinner wrote:
> > > 
> > > All these tests don't make sense if you never unmount the filesystem.
> > > Istead they should exit with _notrun for tmpfs.
> > 
> > IOWs, adding tmpfs changes the definition of a "generic" test.
> > 
> > i.e. instead of:
> > 
> > _supported_fs generic
> > 
> > these tests are now:
> > 
> > _supported_fs xfs ext2 ext3 ext4 ext4dev btrfs gfs2 nfs udf reiserfs
> > 
> > and by that definition should be in the tests/shared directory....
> 
> At a higher level, I wonder how useful having the distinction between
> "generic" and "shared" really is.  Suppose in the future we add some
> tests for networked file systems or cluster file systems --- do we end
> up migrating even more tests from "generic" to "shared" when we find
> tests that don't work for some new file system?

That's not the problem I'm pointing out. The physical location ofthe
test at this point is irrelevant.

The fundamental problem is that "generic" is a wildcard that we use
to match all filesystems, and so adding a new filesystem changes
the definition and suddenly tests that were generic now no longer
run on all filesystems.

> And to the extent that we have things like 
> 
> _require_<feature>
> 
> which skips certain tests, it's not even true that all generic tests
> are run for all file systems.

_supported_fs is just a _requires_<foo> statement on steriods.
"generic" simply documents tests that are expected to run on every
single filesystem we can throw at it.

The thing is, tmpfs is a very special snowflake - it's a volatile
filesystem. xfstests was never designed to handle filesystems that
destroy their contents on unmount, and so adding a filesystem that
*doesn't support unmount/remount* breaks fundamental assumptions the
test harness makes about how filesystems behave.

Hence adding tmpfs support means that a generic test can no longer
unmount and mount filesystems. That's a major change in test
architecture right there, and I'm not sure we start turning stuff
upside down to support wacky quirks like volatile filesystems we
can't unmount...

That's the bigger issue here - tmpfs fundamentally violates the
assumption that xfstests is based on - that filesystems are
non-volatile and persist across unmount and hence can be rigorously
validated after an unmount...

The result of this is it changes cwthe definition of what a
"generic" filesystem is, and then everything flows downhill from
there.

> Perhaps it would make more sense to move all of the generic test to
> shared, and eliminating the distinction?  That way it also becomes
> easier becase we don't need to remember whether a test is generic/NNN
> vs shared/NNN.  :-)

Again, that does not solve the problem of tmpfs changing the
definition of a "generic" filesystem....

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2013-12-12  0:53 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-10 20:11 [PATCH 00/10] Add tmpfs filesystem support Junho Ryu
2013-12-10 20:11 ` [PATCH 01/10] xfstests: Add tmpfs support Junho Ryu
2013-12-11  7:40   ` Christoph Hellwig
2013-12-17 16:40   ` Rich Johnston
2013-12-10 20:11 ` [PATCH 02/10] xfstests: use mount point instead of device name Junho Ryu
2013-12-11  7:42   ` Christoph Hellwig
2013-12-10 20:11 ` [PATCH 03/10] xfstests: _scratch_mkfs_sized() for tmpfs Junho Ryu
2013-12-11  7:44   ` Christoph Hellwig
2013-12-10 20:11 ` [PATCH 04/10] xfstests: increase tmpfs memory size Junho Ryu
2013-12-11  7:44   ` Christoph Hellwig
2013-12-10 20:11 ` [PATCH 05/10] xfstests: do not unmount tmpfs during remount Junho Ryu
2013-12-11  7:46   ` Christoph Hellwig
2013-12-11 22:40     ` Dave Chinner
2013-12-12  0:16       ` Theodore Ts'o
2013-12-12  0:53         ` Dave Chinner [this message]
2013-12-12 18:01       ` Christoph Hellwig
2013-12-12 22:56         ` Dave Chinner
2013-12-13  0:00           ` Junho Ryu
2013-12-13  1:41             ` Dave Chinner
2013-12-13 11:12               ` Christoph Hellwig
2013-12-13  4:56           ` Theodore Ts'o
2013-12-13 11:04           ` Christoph Hellwig
2013-12-10 20:11 ` [PATCH 06/10] xfstests: fix generic/225 to check fiemap support Junho Ryu
2013-12-11  7:46   ` Christoph Hellwig
2013-12-11 22:42     ` Dave Chinner
2013-12-12 18:01       ` Christoph Hellwig
2013-12-12 22:44         ` Junho Ryu
2013-12-12 23:00           ` Dave Chinner
2013-12-10 20:11 ` [PATCH 07/10] xfstests: fix generic/127 to call _cleanup() only once Junho Ryu
2013-12-11  7:47   ` Christoph Hellwig
2013-12-10 20:11 ` [PATCH 08/10] xfstests: check O_DIRECT support before testing direct I/O Junho Ryu
2013-12-11  7:47   ` Christoph Hellwig
2013-12-10 20:12 ` [PATCH 09/10] xfstests: add executable permission to tests Junho Ryu
2013-12-11  7:48   ` Christoph Hellwig
2013-12-10 20:12 ` [PATCH 10/10] xfstests: skip parts of tests which cannot work on tmpfs Junho Ryu
2013-12-11  7:51   ` Christoph Hellwig

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=20131212005343.GV10988@dastard \
    --to=david@fromorbit.com \
    --cc=branto@redhat.com \
    --cc=hch@infradead.org \
    --cc=hughd@google.com \
    --cc=jayr@google.com \
    --cc=tytso@mit.edu \
    --cc=xfs@oss.sgi.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox