public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Qu Wenruo <quwenruo.btrfs@gmx.com>
Cc: fstests <fstests@vger.kernel.org>
Subject: Re: Any way to detect performance in a test case?
Date: Thu, 17 Jan 2019 11:16:15 +1100	[thread overview]
Message-ID: <20190117001615.GB6173@dastard> (raw)
In-Reply-To: <643f7899-e010-2694-4af6-960f0fc6e5cc@gmx.com>

On Wed, Jan 16, 2019 at 12:47:21PM +0800, Qu Wenruo wrote:
> 
> 
> On 2019/1/16 上午11:57, Dave Chinner wrote:
> > On Wed, Jan 16, 2019 at 09:59:40AM +0800, Qu Wenruo wrote:
> >> Hi,
> >>
> >> Is there any way to detect (huge) performance regression in a test case?
> >>
> >> By huge performance regression, I mean some operation takes from less
> >> than 10s to around 400s.
> >>
> >> There is existing runtime accounting, but we can't do it inside a test
> >> case (or can we?)
> >>
> >> So is there any way to detect huge performance regression in a test case?
> > 
> > Just run your normal performance monitoring tools while the test is
> > running to see what has changed. Is it IO, memory, CPU, lock
> > contention or somethign else that is the problem?  pcp, strace, top,
> > iostat, perf, etc all work just fine for finding perf regressions
> > reported by test cases...
> 
> Sorry for the misunderstanding.
> 
> I mean if it's possible for a test case to just fail when hitting some
> big performance regression.

This is part of the reported information in $RESULT_BASE/check.time.

If you want to keep a history of runtimes for later comparison, then
you just need to archive contents of that file with the test
results.

OR, alternatively, generate an XML test report which reports the
individual test runtime in each report:

.....
        <testcase classname="xfstests.xfs" name="generic/036" time="12">
        </testcase>
        <testcase classname="xfstests.xfs" name="generic/112" time="5">
        </testcase>
        <testcase classname="xfstests.xfs" name="generic/113" time="4">
        </testcase>
        <testcase classname="xfstests.xfs" name="generic/114" time="1">
.....

And then post-process these reports to determine runtime
differences.

> E.g. one operation should finish in 30s, but when it takes over 300s,
> it's definitely a big regression.
> 
> But considering how many different hardware/VM the test may be run on,
> I'm not really confident if this is possible.

You can really only determine performance regressions by comparing
test runtime on kernels with the same features set run on the same
hardware. Hence you'll need to keep archives from all your test
machiens and configs and only compare between matching
configurations.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  parent reply	other threads:[~2019-01-17  0:16 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-16  1:59 Any way to detect performance in a test case? Qu Wenruo
2019-01-16  3:57 ` Dave Chinner
2019-01-16  4:47   ` Qu Wenruo
2019-01-16 17:33     ` Vijaychidambaram Velayudhan Pillai
2019-01-17  0:16     ` Dave Chinner [this message]
2019-01-17  1:30       ` Qu Wenruo
2019-01-17  2:25         ` Dave Chinner
2019-01-23  0:51           ` Qu Wenruo
2019-01-23  4:18             ` Dave Chinner
2019-01-23  5:08               ` Qu Wenruo

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=20190117001615.GB6173@dastard \
    --to=david@fromorbit.com \
    --cc=fstests@vger.kernel.org \
    --cc=quwenruo.btrfs@gmx.com \
    /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