From: Amir Goldstein <amir73il@gmail.com>
To: Dave Chinner <david@fromorbit.com>, Eryu Guan <eguan@redhat.com>,
Christoph Hellwig <hch@lst.de>
Cc: "Darrick J . Wong" <darrick.wong@oracle.com>, fstests@vger.kernel.org
Subject: [PATCH v2 3/3] fstests: run xfs_io as multi threaded for 'quick' tests
Date: Sun, 16 Oct 2016 13:53:42 +0300 [thread overview]
Message-ID: <1476615222-7804-3-git-send-email-amir73il@gmail.com> (raw)
In-Reply-To: <1476615222-7804-1-git-send-email-amir73il@gmail.com>
Try to run xfs_io for tests in group quick with command line
option -M which starts an idle thread before performing any io.
The purpose of this idle thread is to test io from a multi threaded
process. With single threaded process, the file table is not shared
and file structs are not reference counted.
In order to improve the chance of detecting file struct reference
leaks, we should run xfs_io commands with this option as much as
possible.
Analysis of the effect of xfs_io -M on tests runtime showed that
it may lead to slightly longer run times in extreme cases (e.g +3s
for generic/132), but has a negligable effect on runtime of tests
among the 'quick' group (worst case +0.3s for generic/130).
Therefore, we automatically add the -M flags only to tests in the
'quick' group.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
check | 2 ++
common/rc | 15 +++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/check b/check
index 69341d8..e568598 100755
--- a/check
+++ b/check
@@ -574,6 +574,8 @@ for section in $HOST_OPTIONS_SECTIONS; do
mkdir -p $RESULT_DIR
+ export TEST_GROUPS=`grep $(basename $seqnum) "$SRC_DIR/$(dirname $seqnum)/group"`
+
echo -n "$seqnum"
if $showme; then
diff --git a/common/rc b/common/rc
index a838750..7c478cf 100644
--- a/common/rc
+++ b/common/rc
@@ -3799,6 +3799,21 @@ init_rc()
$XFS_IO_PROG -c stat $TEST_DIR 2>&1 | grep -q "is not on an XFS filesystem" && \
export XFS_IO_PROG="$XFS_IO_PROG -F"
+ if echo $TEST_GROUPS | grep -q quick; then
+ # xfs_io -M flag runs xfs_io as multi threaded process
+ # in order to catch fdget/fdset reference leaks, because
+ # file structs are not reference counted in a single threaded
+ # process.
+ # Because reference counted fdget/fdset may lead to slightly
+ # longer run times in extreme cases (such as generic/132),
+ # we limit the use of -M flags to tests with short runtime,
+ # where the effect of the flag is negligable.
+ #
+ # Figure out if xfs_io supports the -M option
+ $XFS_IO_PROG -M -c quit 2>/dev/null && \
+ export XFS_IO_PROG="$XFS_IO_PROG -M"
+ fi
+
# xfs_copy doesn't work on v5 xfs yet without -d option
if [ "$FSTYP" == "xfs" ] && [[ $MKFS_OPTIONS =~ crc=1 ]]; then
export XFS_COPY_PROG="$XFS_COPY_PROG -d"
--
2.7.4
next prev parent reply other threads:[~2016-10-16 10:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-16 10:53 [PATCH v2 1/3] fstests: fix call sites that used xfs_io directly Amir Goldstein
2016-10-16 10:53 ` [PATCH v2 2/3] fstests: strip quotes from "$XFS_IO_PROG" call sites Amir Goldstein
2016-10-16 10:53 ` Amir Goldstein [this message]
2016-10-16 21:46 ` [PATCH v2 3/3] fstests: run xfs_io as multi threaded for 'quick' tests Dave Chinner
2016-10-17 7:01 ` Amir Goldstein
2016-10-17 21:49 ` Amir Goldstein
2016-10-20 14:25 ` Eryu Guan
2016-10-20 18:27 ` Amir Goldstein
2016-10-21 15:24 ` Eryu Guan
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=1476615222-7804-3-git-send-email-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=darrick.wong@oracle.com \
--cc=david@fromorbit.com \
--cc=eguan@redhat.com \
--cc=fstests@vger.kernel.org \
--cc=hch@lst.de \
/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