From: Jens Axboe <axboe@kernel.dk>
To: Vincent Fu <Vincent.Fu@sandisk.com>,
"fio@vger.kernel.org" <fio@vger.kernel.org>
Subject: Re: terminating fio jobs upon reaching steady state
Date: Tue, 12 Jul 2016 12:55:11 -0700 [thread overview]
Message-ID: <57854B1F.1000106@kernel.dk> (raw)
In-Reply-To: <CY1PR0201MB1882D39478B9483993B429488C240@CY1PR0201MB1882.namprd02.prod.outlook.com>
On 06/30/2016 08:49 AM, Vincent Fu wrote:
> Jens, I have been working on a patch to give fio the ability to
> terminate a job when steady state is attained. I have a crude
> implementation that is working at
> https://bitbucket.org/vincentfu/fio/commits/all but I'm hoping to
> receive some feedback on its design.
>
> Currently, the feature works via helper_thread_main(). It collects data
> in a ring buffer for a specified duration and carries out the
> termination test when the ring buffer is full. If the test passes, the
> job terminates. If the test fails, the job continues, the oldest data
> point in the buffer is dropped, a new data point is added, and the
> termination test is carried out again. The cycle repeats until the job
> terminates because steady state was attained or for other reasons.
Vincent, where are we at on this? Would be nice to get this included. A
few comments:
- The global 'steadystate' bool. Seems like this should be a per-job
thing, and not global. For a specific group of threads, whether we are
in steady state or not should be checked for those td's.
- Should still work with ramptime. If we're in ramp time, no checking.
Start steady state checking once we are out of ramp time.
- Would be nice if the SS output was there for non-json. At least
something for the normal output, I think we can safely ignore the
terse/csv in this regard.
- Should struct steady_state just be embedded in the thread_stat? It
needs to be transmitted across the wire for client/server. So either you
need to split it in two, or you need to embed it and sanitize it for
on-the-wire transmission. You could keep the td->ss, and have a version
that we export and embed that in thread_stat? If you do that, then have
a steady_state_bla that's embedded in both struct steady_state and
struct thread_stat.
Rest of the comments would be around cleanup, lots of little extra
spaces here and there. But I can script sanitize that, so didn't want to
address that in here.
--
Jens Axboe
next prev parent reply other threads:[~2016-07-12 19:55 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-30 15:49 terminating fio jobs upon reaching steady state Vincent Fu
2016-07-12 19:55 ` Jens Axboe [this message]
2016-07-12 21:50 ` Vincent Fu
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=57854B1F.1000106@kernel.dk \
--to=axboe@kernel.dk \
--cc=Vincent.Fu@sandisk.com \
--cc=fio@vger.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 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.