From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf0-f68.google.com ([209.85.215.68]:34617 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757530AbcJQHYN (ORCPT ); Mon, 17 Oct 2016 03:24:13 -0400 Received: by mail-lf0-f68.google.com with SMTP id x23so19380429lfi.1 for ; Mon, 17 Oct 2016 00:24:13 -0700 (PDT) From: Amir Goldstein Subject: [PATCH v3 3/3] fstests: run xfs_io with -i option is supported Date: Mon, 17 Oct 2016 10:23:34 +0300 Message-Id: <1476689014-384-3-git-send-email-amir73il@gmail.com> In-Reply-To: <1476689014-384-1-git-send-email-amir73il@gmail.com> References: <1476689014-384-1-git-send-email-amir73il@gmail.com> Sender: fstests-owner@vger.kernel.org To: Dave Chinner , Eryu Guan , Christoph Hellwig Cc: fstests@vger.kernel.org List-ID: Try to run xfs_io with command line option -i, 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 -i 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). Signed-off-by: Amir Goldstein --- common/rc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/common/rc b/common/rc index a838750..da079f3 100644 --- a/common/rc +++ b/common/rc @@ -3799,6 +3799,15 @@ 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" + # xfs_io -i option starts an idle thread for xfs_io. + # With single threaded process, the file table is not shared + # and file structs are not reference counted. + # Spawning an idle thread can help detecting file struct + # reference leaks, so we want to enable the option whenever + # it is supported. + $XFS_IO_PROG -i -c quit 2>/dev/null && \ + export XFS_IO_PROG="$XFS_IO_PROG -i" + # 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