* [PATCH] generic/247: filter out expected XFS warnings for mixed mmap/direct I/O
@ 2017-06-28 14:14 Brian Foster
2017-06-29 6:19 ` Eryu Guan
0 siblings, 1 reply; 3+ messages in thread
From: Brian Foster @ 2017-06-28 14:14 UTC (permalink / raw)
To: fstests
generic/247 reproduces some of the same, expected warnings from XFS
as generic/095. These warnings occur due to mixed buffered/mapped
I/O racing with direct I/O to the same file.
generic/095 contains a custom dmesg filter to prevent test failure
in the event of such warnings. Lift the helper from generic/095 to
common/xfs and reuse it in generic/247 to implement the same
behavior.
Signed-off-by: Brian Foster <bfoster@redhat.com>
---
common/xfs | 18 ++++++++++++++++++
tests/generic/095 | 20 +++-----------------
tests/generic/247 | 11 +++++++++--
3 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/common/xfs b/common/xfs
index 0f0825b..0266f50 100644
--- a/common/xfs
+++ b/common/xfs
@@ -584,3 +584,21 @@ _require_xfs_mkfs_ciname()
_scratch_mkfs_xfs_supported -n version=ci >/dev/null 2>&1 \
|| _notrun "need case-insensitive naming support in mkfs.xfs"
}
+
+# xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
+# direct IO on the same file. This is a helper for _check_dmesg() to filter out
+# such warnings.
+filter_xfs_dmesg()
+{
+ local warn1="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_write.*"
+ local warn2="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_read.*"
+ local warn3="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_read_iter.*"
+ local warn4="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_aio_read.*"
+ local warn5="WARNING:.*fs/iomap\.c:.*iomap_dio_rw.*"
+ sed -e "s#$warn1#Intentional warnings in xfs_file_dio_aio_write#" \
+ -e "s#$warn2#Intentional warnings in xfs_file_dio_aio_read#" \
+ -e "s#$warn3#Intentional warnings in xfs_file_read_iter#" \
+ -e "s#$warn4#Intentional warnings in xfs_file_aio_read#" \
+ -e "s#$warn5#Intentional warnings in iomap_dio_rw#"
+}
+
diff --git a/tests/generic/095 b/tests/generic/095
index d837564..9580aaf 100755
--- a/tests/generic/095
+++ b/tests/generic/095
@@ -117,28 +117,14 @@ _scratch_mount
echo "Silence is golden"
$FIO_PROG $fio_config >>$seqres.full 2>&1
+# umount before checking dmesg in case umount triggers any WARNING or Oops
+_scratch_unmount
+
# xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
# direct IO on the same file. On the other hand, this fio job has been proven
# to be potent, we don't want to simply _disable_dmesg_check which could miss
# other potential bugs. So filter out the intentional WARNINGs, make sure test
# doesn't fail because of this warning and fails on other WARNINGs.
-filter_xfs_dmesg()
-{
- local warn1="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_write.*"
- local warn2="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_read.*"
- local warn3="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_read_iter.*"
- local warn4="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_aio_read.*"
- local warn5="WARNING:.*fs/iomap\.c:.*iomap_dio_rw.*"
- sed -e "s#$warn1#Intentional warnings in xfs_file_dio_aio_write#" \
- -e "s#$warn2#Intentional warnings in xfs_file_dio_aio_read#" \
- -e "s#$warn3#Intentional warnings in xfs_file_read_iter#" \
- -e "s#$warn4#Intentional warnings in xfs_file_aio_read#" \
- -e "s#$warn5#Intentional warnings in iomap_dio_rw#"
-}
-
-# umount before checking dmesg in case umount triggers any WARNING or Oops
-_scratch_unmount
-
if [ "$FSTYP" == "xfs" ]; then
_check_dmesg filter_xfs_dmesg
else
diff --git a/tests/generic/247 b/tests/generic/247
index 832ade1..f46ab30 100755
--- a/tests/generic/247
+++ b/tests/generic/247
@@ -80,6 +80,13 @@ wait
echo "Silence is golden."
-# success, all done
-status=0
+# unmount and check dmesg, filtering out expected XFS warnings about mixed
+# mmap/dio
+_scratch_unmount
+if [ "$FSTYP" == "xfs" ]; then
+ _check_dmesg filter_xfs_dmesg
+else
+ _check_dmesg
+fi
+status=$?
exit
--
2.9.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] generic/247: filter out expected XFS warnings for mixed mmap/direct I/O
2017-06-28 14:14 [PATCH] generic/247: filter out expected XFS warnings for mixed mmap/direct I/O Brian Foster
@ 2017-06-29 6:19 ` Eryu Guan
2017-06-29 11:54 ` Brian Foster
0 siblings, 1 reply; 3+ messages in thread
From: Eryu Guan @ 2017-06-29 6:19 UTC (permalink / raw)
To: Brian Foster; +Cc: fstests
On Wed, Jun 28, 2017 at 10:14:42AM -0400, Brian Foster wrote:
> generic/247 reproduces some of the same, expected warnings from XFS
> as generic/095. These warnings occur due to mixed buffered/mapped
> I/O racing with direct I/O to the same file.
>
> generic/095 contains a custom dmesg filter to prevent test failure
> in the event of such warnings. Lift the helper from generic/095 to
> common/xfs and reuse it in generic/247 to implement the same
> behavior.
>
> Signed-off-by: Brian Foster <bfoster@redhat.com>
Thanks a lot for doing this! It was in my todo list but I never got to
it..
Some minor issues below, that I can fix them all at commit time.
> ---
> common/xfs | 18 ++++++++++++++++++
> tests/generic/095 | 20 +++-----------------
> tests/generic/247 | 11 +++++++++--
> 3 files changed, 30 insertions(+), 19 deletions(-)
>
> diff --git a/common/xfs b/common/xfs
> index 0f0825b..0266f50 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -584,3 +584,21 @@ _require_xfs_mkfs_ciname()
> _scratch_mkfs_xfs_supported -n version=ci >/dev/null 2>&1 \
> || _notrun "need case-insensitive naming support in mkfs.xfs"
> }
> +
> +# xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
> +# direct IO on the same file. This is a helper for _check_dmesg() to filter out
> +# such warnings.
> +filter_xfs_dmesg()
I've renamed it, added a leading underscore _filter_xfs_dmesg, it's
common helper now.
> +{
> + local warn1="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_write.*"
> + local warn2="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_read.*"
> + local warn3="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_read_iter.*"
> + local warn4="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_aio_read.*"
> + local warn5="WARNING:.*fs/iomap\.c:.*iomap_dio_rw.*"
> + sed -e "s#$warn1#Intentional warnings in xfs_file_dio_aio_write#" \
> + -e "s#$warn2#Intentional warnings in xfs_file_dio_aio_read#" \
> + -e "s#$warn3#Intentional warnings in xfs_file_read_iter#" \
> + -e "s#$warn4#Intentional warnings in xfs_file_aio_read#" \
> + -e "s#$warn5#Intentional warnings in iomap_dio_rw#"
> +}
> +
> diff --git a/tests/generic/095 b/tests/generic/095
> index d837564..9580aaf 100755
> --- a/tests/generic/095
> +++ b/tests/generic/095
> @@ -117,28 +117,14 @@ _scratch_mount
> echo "Silence is golden"
> $FIO_PROG $fio_config >>$seqres.full 2>&1
>
> +# umount before checking dmesg in case umount triggers any WARNING or Oops
> +_scratch_unmount
> +
> # xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
> # direct IO on the same file. On the other hand, this fio job has been proven
> # to be potent, we don't want to simply _disable_dmesg_check which could miss
> # other potential bugs. So filter out the intentional WARNINGs, make sure test
> # doesn't fail because of this warning and fails on other WARNINGs.
> -filter_xfs_dmesg()
> -{
> - local warn1="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_write.*"
> - local warn2="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_read.*"
> - local warn3="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_read_iter.*"
> - local warn4="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_aio_read.*"
> - local warn5="WARNING:.*fs/iomap\.c:.*iomap_dio_rw.*"
> - sed -e "s#$warn1#Intentional warnings in xfs_file_dio_aio_write#" \
> - -e "s#$warn2#Intentional warnings in xfs_file_dio_aio_read#" \
> - -e "s#$warn3#Intentional warnings in xfs_file_read_iter#" \
> - -e "s#$warn4#Intentional warnings in xfs_file_aio_read#" \
> - -e "s#$warn5#Intentional warnings in iomap_dio_rw#"
> -}
> -
> -# umount before checking dmesg in case umount triggers any WARNING or Oops
> -_scratch_unmount
> -
> if [ "$FSTYP" == "xfs" ]; then
> _check_dmesg filter_xfs_dmesg
> else
> diff --git a/tests/generic/247 b/tests/generic/247
> index 832ade1..f46ab30 100755
> --- a/tests/generic/247
> +++ b/tests/generic/247
> @@ -80,6 +80,13 @@ wait
>
> echo "Silence is golden."
>
> -# success, all done
> -status=0
> +# unmount and check dmesg, filtering out expected XFS warnings about mixed
> +# mmap/dio
> +_scratch_unmount
generic/247 doesn't take use of SCRATCH_DEV, _scratch_unmount and the
associated comment can be removed.
Thanks,
Eryu
> +if [ "$FSTYP" == "xfs" ]; then
> + _check_dmesg filter_xfs_dmesg
> +else
> + _check_dmesg
> +fi
> +status=$?
> exit
> --
> 2.9.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] generic/247: filter out expected XFS warnings for mixed mmap/direct I/O
2017-06-29 6:19 ` Eryu Guan
@ 2017-06-29 11:54 ` Brian Foster
0 siblings, 0 replies; 3+ messages in thread
From: Brian Foster @ 2017-06-29 11:54 UTC (permalink / raw)
To: Eryu Guan; +Cc: fstests
On Thu, Jun 29, 2017 at 02:19:09PM +0800, Eryu Guan wrote:
> On Wed, Jun 28, 2017 at 10:14:42AM -0400, Brian Foster wrote:
> > generic/247 reproduces some of the same, expected warnings from XFS
> > as generic/095. These warnings occur due to mixed buffered/mapped
> > I/O racing with direct I/O to the same file.
> >
> > generic/095 contains a custom dmesg filter to prevent test failure
> > in the event of such warnings. Lift the helper from generic/095 to
> > common/xfs and reuse it in generic/247 to implement the same
> > behavior.
> >
> > Signed-off-by: Brian Foster <bfoster@redhat.com>
>
> Thanks a lot for doing this! It was in my todo list but I never got to
> it..
>
> Some minor issues below, that I can fix them all at commit time.
>
Ok.. the fixes look fine to me.. thanks!
Brian
> > ---
> > common/xfs | 18 ++++++++++++++++++
> > tests/generic/095 | 20 +++-----------------
> > tests/generic/247 | 11 +++++++++--
> > 3 files changed, 30 insertions(+), 19 deletions(-)
> >
> > diff --git a/common/xfs b/common/xfs
> > index 0f0825b..0266f50 100644
> > --- a/common/xfs
> > +++ b/common/xfs
> > @@ -584,3 +584,21 @@ _require_xfs_mkfs_ciname()
> > _scratch_mkfs_xfs_supported -n version=ci >/dev/null 2>&1 \
> > || _notrun "need case-insensitive naming support in mkfs.xfs"
> > }
> > +
> > +# xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
> > +# direct IO on the same file. This is a helper for _check_dmesg() to filter out
> > +# such warnings.
> > +filter_xfs_dmesg()
>
> I've renamed it, added a leading underscore _filter_xfs_dmesg, it's
> common helper now.
>
> > +{
> > + local warn1="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_write.*"
> > + local warn2="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_read.*"
> > + local warn3="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_read_iter.*"
> > + local warn4="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_aio_read.*"
> > + local warn5="WARNING:.*fs/iomap\.c:.*iomap_dio_rw.*"
> > + sed -e "s#$warn1#Intentional warnings in xfs_file_dio_aio_write#" \
> > + -e "s#$warn2#Intentional warnings in xfs_file_dio_aio_read#" \
> > + -e "s#$warn3#Intentional warnings in xfs_file_read_iter#" \
> > + -e "s#$warn4#Intentional warnings in xfs_file_aio_read#" \
> > + -e "s#$warn5#Intentional warnings in iomap_dio_rw#"
> > +}
> > +
> > diff --git a/tests/generic/095 b/tests/generic/095
> > index d837564..9580aaf 100755
> > --- a/tests/generic/095
> > +++ b/tests/generic/095
> > @@ -117,28 +117,14 @@ _scratch_mount
> > echo "Silence is golden"
> > $FIO_PROG $fio_config >>$seqres.full 2>&1
> >
> > +# umount before checking dmesg in case umount triggers any WARNING or Oops
> > +_scratch_unmount
> > +
> > # xfs generates WARNINGs on purpose when applications mix buffered/mmap IO with
> > # direct IO on the same file. On the other hand, this fio job has been proven
> > # to be potent, we don't want to simply _disable_dmesg_check which could miss
> > # other potential bugs. So filter out the intentional WARNINGs, make sure test
> > # doesn't fail because of this warning and fails on other WARNINGs.
> > -filter_xfs_dmesg()
> > -{
> > - local warn1="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_write.*"
> > - local warn2="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_dio_aio_read.*"
> > - local warn3="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_read_iter.*"
> > - local warn4="WARNING:.*fs/xfs/xfs_file\.c:.*xfs_file_aio_read.*"
> > - local warn5="WARNING:.*fs/iomap\.c:.*iomap_dio_rw.*"
> > - sed -e "s#$warn1#Intentional warnings in xfs_file_dio_aio_write#" \
> > - -e "s#$warn2#Intentional warnings in xfs_file_dio_aio_read#" \
> > - -e "s#$warn3#Intentional warnings in xfs_file_read_iter#" \
> > - -e "s#$warn4#Intentional warnings in xfs_file_aio_read#" \
> > - -e "s#$warn5#Intentional warnings in iomap_dio_rw#"
> > -}
> > -
> > -# umount before checking dmesg in case umount triggers any WARNING or Oops
> > -_scratch_unmount
> > -
> > if [ "$FSTYP" == "xfs" ]; then
> > _check_dmesg filter_xfs_dmesg
> > else
> > diff --git a/tests/generic/247 b/tests/generic/247
> > index 832ade1..f46ab30 100755
> > --- a/tests/generic/247
> > +++ b/tests/generic/247
> > @@ -80,6 +80,13 @@ wait
> >
> > echo "Silence is golden."
> >
> > -# success, all done
> > -status=0
> > +# unmount and check dmesg, filtering out expected XFS warnings about mixed
> > +# mmap/dio
> > +_scratch_unmount
>
> generic/247 doesn't take use of SCRATCH_DEV, _scratch_unmount and the
> associated comment can be removed.
>
> Thanks,
> Eryu
>
> > +if [ "$FSTYP" == "xfs" ]; then
> > + _check_dmesg filter_xfs_dmesg
> > +else
> > + _check_dmesg
> > +fi
> > +status=$?
> > exit
> > --
> > 2.9.4
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe fstests" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-06-29 11:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-28 14:14 [PATCH] generic/247: filter out expected XFS warnings for mixed mmap/direct I/O Brian Foster
2017-06-29 6:19 ` Eryu Guan
2017-06-29 11:54 ` Brian Foster
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.