From: "Nirjhar Roy (IBM)" <nirjhar.roy.lists@gmail.com>
To: Dave Chinner <david@fromorbit.com>
Cc: Theodore Ts'o <tytso@mit.edu>,
fstests@vger.kernel.org, linux-ext4@vger.kernel.org,
linux-xfs@vger.kernel.org, ritesh.list@gmail.com,
ojaswin@linux.ibm.com, djwong@kernel.org, zlang@kernel.org
Subject: Re: [PATCH v2 2/3] check: Add -q <n> option to support unconditional looping.
Date: Wed, 23 Apr 2025 11:32:47 +0530 [thread overview]
Message-ID: <b15906c4-3cd0-481f-8f8b-3dc3e581d817@gmail.com> (raw)
In-Reply-To: <Z_7rqLbQCLAY5zbN@dread.disaster.area>
On 4/16/25 04:58, Dave Chinner wrote:
> On Tue, Apr 15, 2025 at 01:02:49PM +0530, Nirjhar Roy (IBM) wrote:
>> On 4/14/25 03:18, Theodore Ts'o wrote:
>>> On Thu, Apr 03, 2025 at 08:58:19AM +0000, Nirjhar Roy (IBM) wrote:
>>>> This patch adds -q <n> option through which one can run a given test <n>
>>>> times unconditionally. It also prints pass/fail metrics at the end.
>>>>
>>>> The advantage of this over -L <n> and -i/-I <n> is that:
>>>> a. -L <n> will not re-run a flakey test if the test passes for the first time.
>>>> b. -I/-i <n> sets up devices during each iteration and hence slower.
>>>> Note -q <n> will override -L <n>.
>>> I'm wondering if we need to keep the current behavior of -I/-i. The
>>> primary difference between them and how your proposed -q works is that
>>> instead of iterating over the section, your proposed option iterates
>>> over each test. So for example, if a section contains generic/001 and
>>> generic/002, iterating using -i 3 will do this:
>> Yes, the motivation to introduce -q was to:
>>
>> 1. Make the re-run faster and not re-format the device. -i re-formats the
>> device and hence is slightly slower.
> Why does -i reformat the test device on every run in your setup?
> i.e. if the FSTYP is not changing from iteration to iteration, then
> each iteration should not reformat the test device at all. Unless, of
> course, you have told it to do so via the RECREATE_TEST_DEV env
> variable....
No, it doesn't re-format the test device. It re-formats the scratch
device. With -q, there will be no re-formatting of the scratch device too.
>
> Hence it seems to me like this is working around some other setup or
> section iteration problem here...
>
>> 2. To unconditionally loop a test - useful for scenarios when a flaky test
>> doesn't fail for the first time (something that -L) does.
> That's what -i does. it will unconditionally loop over the specified
> tests N times regardless of success or failure.
>
> OTOH, -I will abort on first failure. i.e. to enable flakey tests
> to be run until it eventually fails and leave the corpse behind for
> debugging.
>
>> So, are saying that re-formatting a disk on every run, something that -i
>> does, doesn't have much value and can be removed?
> -i does not imply that the test device should be reformatted on
> every loop. If that is happening, that is likely a result of test
> config or environment conditions.
>
> Can you tell us why the test device is getting reformatted on every
> iteration in your setup?
As mentioned above, -i isn't reformatting our test device. It is
re-formatting scratch device and we introduced -q to unconditionally
loop without even reformatting the scratch device, and hence making the
re-runs faster.
--NR
>
>>> generic/001
>>> generic/002
>>> generic/001
>>> generic/002
>>> generic/001
>>> generic/002
>>>
>>> While generic -q 3 would do this instead:
>>>
>>> generic/001
>>> generic/001
>>> generic/001
>>> generic/002
>>> generic/002
>>> generic/002
> There are arguments both for and against the different iteration
> orders. However, if there is no overriding reason to change the
> existing order of test execution, then we should not change the
> order or test execution....
>
> -Dave.
--
Nirjhar Roy
Linux Kernel Developer
IBM, Bangalore
next prev parent reply other threads:[~2025-04-23 6:02 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-03 8:58 [PATCH v2 0/3] Add support for -q <n> unconditional loop Nirjhar Roy (IBM)
2025-04-03 8:58 ` [PATCH v2 1/3] tests/selftest: Add a new pseudo flaky test Nirjhar Roy (IBM)
2025-04-03 8:58 ` [PATCH v2 2/3] check: Add -q <n> option to support unconditional looping Nirjhar Roy (IBM)
2025-04-13 21:48 ` Theodore Ts'o
2025-04-15 7:32 ` Nirjhar Roy (IBM)
2025-04-15 23:28 ` Dave Chinner
2025-04-23 6:02 ` Nirjhar Roy (IBM) [this message]
2025-04-15 9:06 ` Ritesh Harjani
2025-04-03 8:58 ` [PATCH v2 3/3] check: Improve pass/fail metrics and section config output Nirjhar Roy (IBM)
2025-04-09 16:34 ` [PATCH v2 0/3] Add support for -q <n> unconditional loop Nirjhar Roy (IBM)
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=b15906c4-3cd0-481f-8f8b-3dc3e581d817@gmail.com \
--to=nirjhar.roy.lists@gmail.com \
--cc=david@fromorbit.com \
--cc=djwong@kernel.org \
--cc=fstests@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=ojaswin@linux.ibm.com \
--cc=ritesh.list@gmail.com \
--cc=tytso@mit.edu \
--cc=zlang@kernel.org \
/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