fstests.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [fstests PATCH] generic/223: skip when using DAX
@ 2018-06-13 21:07 Ross Zwisler
  2018-06-13 22:25 ` Darrick J. Wong
  0 siblings, 1 reply; 3+ messages in thread
From: Ross Zwisler @ 2018-06-13 21:07 UTC (permalink / raw)
  To: Eryu Guan, fstests; +Cc: Ross Zwisler, linux-nvdimm

As of these upstream kernel commits:

commit 6e2608dfd934 ("xfs, dax: introduce xfs_dax_aops")
commit 5f0663bb4a64 ("ext4, dax: introduce ext4_dax_aops")

generic/223 fails on XFS and ext4 because filesystems mounted with DAX no
longer support bmap.  This is desired behavior and will not be fixed,
according to:

https://lists.01.org/pipermail/linux-nvdimm/2018-April/015383.html

So, just skip over generic/223 when using DAX so we don't throw false
positive test failures.

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
---
 tests/generic/223 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/generic/223 b/tests/generic/223
index dfd8c41b..1a7cf269 100755
--- a/tests/generic/223
+++ b/tests/generic/223
@@ -31,6 +31,7 @@ _supported_os Linux
 
 _require_scratch
 _require_xfs_io_command "falloc"
+_exclude_scratch_mount_option dax
 
 rm -f $seqres.full
 
-- 
2.14.4


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

* Re: [fstests PATCH] generic/223: skip when using DAX
  2018-06-13 21:07 [fstests PATCH] generic/223: skip when using DAX Ross Zwisler
@ 2018-06-13 22:25 ` Darrick J. Wong
  2018-06-13 22:33   ` Ross Zwisler
  0 siblings, 1 reply; 3+ messages in thread
From: Darrick J. Wong @ 2018-06-13 22:25 UTC (permalink / raw)
  To: Ross Zwisler; +Cc: Eryu Guan, fstests, linux-nvdimm

On Wed, Jun 13, 2018 at 03:07:42PM -0600, Ross Zwisler wrote:
> As of these upstream kernel commits:
> 
> commit 6e2608dfd934 ("xfs, dax: introduce xfs_dax_aops")
> commit 5f0663bb4a64 ("ext4, dax: introduce ext4_dax_aops")
> 
> generic/223 fails on XFS and ext4 because filesystems mounted with DAX no
> longer support bmap.  This is desired behavior and will not be fixed,
> according to:
> 
> https://lists.01.org/pipermail/linux-nvdimm/2018-April/015383.html
> 
> So, just skip over generic/223 when using DAX so we don't throw false
> positive test failures.

Just because we decided not to support FIBMAP on XFSDAX doesn't mean we
should let this test bitrot. :)

Just out of curiosity, does the following patch fix g/223 for you?

--D

diff --git a/src/t_stripealign.c b/src/t_stripealign.c
index 05ed36b5..690f743a 100644
--- a/src/t_stripealign.c
+++ b/src/t_stripealign.c
@@ -17,8 +17,13 @@
 #include <fcntl.h>
 #include <stdio.h>
 #include <sys/ioctl.h>
+#include <linux/fiemap.h>
+#include <linux/fs.h>
 
-#define FIBMAP          _IO(0x00, 1)    /* bmap access */
+#define FIEMAP_EXTENT_ACCEPTABLE	(FIEMAP_EXTENT_LAST | \
+		FIEMAP_EXTENT_DATA_ENCRYPTED | FIEMAP_EXTENT_ENCODED | \
+		FIEMAP_EXTENT_UNWRITTEN | FIEMAP_EXTENT_MERGED | \
+		FIEMAP_EXTENT_SHARED)
 
 /*
  * If only filename given, print first block.
@@ -28,11 +33,14 @@
 
 int main(int argc, char ** argv)
 {
-	int	fd;
-	int	ret;
-	int	sunit = 0;	/* in blocks */
-	char	*filename;
-	unsigned int	block = 0;
+	struct stat		sb;
+	struct fiemap		*fie;
+	struct fiemap_extent	*fe;
+	int			fd;
+	int			ret;
+	int			sunit = 0;	/* in blocks */
+	char			*filename;
+	unsigned long long	block;
 
         if (argc < 3) {
                 printf("Usage: %s <filename> <sunit in blocks>\n", argv[0]);
@@ -48,21 +56,63 @@ int main(int argc, char ** argv)
                 return 1;
         }
 
-	ret = ioctl(fd, FIBMAP, &block);
-	if (ret < 0) {
+	ret = fstat(fd, &sb);
+	if (ret) {
+		perror(filename);
 		close(fd);
-		perror("fibmap");
 		return 1;
 	}
 
-	close(fd);
+	fie = calloc(1, sizeof(struct fiemap) + sizeof(struct fiemap_extent));
+	if (!fie) {
+		close(fd);
+		perror("malloc");
+		return 1;
+	}
+	fie->fm_length = 1;
+	fie->fm_flags = FIEMAP_FLAG_SYNC;
+	fie->fm_extent_count = 1;
+
+	ret = ioctl(fd, FS_IOC_FIEMAP, fie);
+	if (ret < 0) {
+		unsigned int	bmap = 0;
+
+		ret = ioctl(fd, FIBMAP, &bmap);
+		if (ret < 0) {
+			perror("fibmap");
+			free(fie);
+			close(fd);
+			return 1;
+		}
+		block = bmap;
+		goto check;
+	}
 
+
+	if (fie->fm_mapped_extents != 1) {
+		printf("%s: no extents?\n", filename);
+		free(fie);
+		close(fd);
+		return 1;
+	}
+	fe = &fie->fm_extents[0];
+	if (fe->fe_flags & ~FIEMAP_EXTENT_ACCEPTABLE) {
+		printf("%s: bad flags 0x%x\n", filename, fe->fe_flags);
+		free(fie);
+		close(fd);
+		return 1;
+	}
+
+	block = fie->fm_extents[0].fe_physical / sb.st_blksize;
+check:
 	if (block % sunit) {
-		printf("%s: Start block %u not multiple of sunit %u\n",
+		printf("%s: Start block %llu not multiple of sunit %u\n",
 			filename, block, sunit);
 		return 1;
 	} else
 		printf("%s: well-aligned\n", filename);
+	free(fie);
+	close(fd);
 
 	return 0;
 }

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

* Re: [fstests PATCH] generic/223: skip when using DAX
  2018-06-13 22:25 ` Darrick J. Wong
@ 2018-06-13 22:33   ` Ross Zwisler
  0 siblings, 0 replies; 3+ messages in thread
From: Ross Zwisler @ 2018-06-13 22:33 UTC (permalink / raw)
  To: Darrick J. Wong; +Cc: Ross Zwisler, Eryu Guan, fstests, linux-nvdimm

On Wed, Jun 13, 2018 at 03:25:58PM -0700, Darrick J. Wong wrote:
> On Wed, Jun 13, 2018 at 03:07:42PM -0600, Ross Zwisler wrote:
> > As of these upstream kernel commits:
> > 
> > commit 6e2608dfd934 ("xfs, dax: introduce xfs_dax_aops")
> > commit 5f0663bb4a64 ("ext4, dax: introduce ext4_dax_aops")
> > 
> > generic/223 fails on XFS and ext4 because filesystems mounted with DAX no
> > longer support bmap.  This is desired behavior and will not be fixed,
> > according to:
> > 
> > https://lists.01.org/pipermail/linux-nvdimm/2018-April/015383.html
> > 
> > So, just skip over generic/223 when using DAX so we don't throw false
> > positive test failures.
> 
> Just because we decided not to support FIBMAP on XFSDAX doesn't mean we
> should let this test bitrot. :)
> 
> Just out of curiosity, does the following patch fix g/223 for you?

Yep!  This makes generic/223 pass in my setup for both DAX and non-DAX, with
both XFS and ext4.

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

end of thread, other threads:[~2018-06-13 22:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-13 21:07 [fstests PATCH] generic/223: skip when using DAX Ross Zwisler
2018-06-13 22:25 ` Darrick J. Wong
2018-06-13 22:33   ` Ross Zwisler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).