From: Amir Goldstein <amir73il@gmail.com>
To: Eryu Guan <eguan@redhat.com>
Cc: Josef Bacik <jbacik@fb.com>, Christoph Hellwig <hch@lst.de>,
fstests@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: [RFC][PATCH 3/8] fsx: fixes to random seed
Date: Wed, 23 Aug 2017 18:49:12 +0300 [thread overview]
Message-ID: <1503503357-26234-4-git-send-email-amir73il@gmail.com> (raw)
In-Reply-To: <1503503357-26234-1-git-send-email-amir73il@gmail.com>
Not sure why, but with initstate()/setstate(), sfx generates
same events regadless of the input seed argument.
Change to use srandom() to fix the problem.
Add pid to auto random seed, so parallel fsx executions with auto
seed will use different seed values.
At this time there are 6 tests that use sfx, out of which:
2 use -S 0 as seed (gettime()) - generic/{075,112}
2 do not specify seed (default = 1) - generic/{091,263}
1 uses explicit constant seed - generic/127
1 uses explicit $RANDOM seed - generic/231
This change affects all those tests.
The tests that intended to randomize the seed will now really
randomize the seed.
The tests that intended to use a constant seed will still use
a constant seed, but resulting event sequence will be different
than before this change.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
ltp/fsx.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/ltp/fsx.c b/ltp/fsx.c
index 3713bbe..572df75 100644
--- a/ltp/fsx.c
+++ b/ltp/fsx.c
@@ -116,7 +116,6 @@ int fd; /* fd for our test file */
blksize_t block_size = 0;
off_t file_size = 0;
off_t biggest = 0;
-char state[256];
unsigned long testcalls = 0; /* calls to function "test" */
unsigned long simulatedopcount = 0; /* -b flag */
@@ -1909,8 +1908,10 @@ main(int argc, char **argv)
break;
case 'S':
seed = getnum(optarg, &endp);
- if (seed == 0)
+ if (seed == 0) {
seed = time(0) % 10000;
+ seed += (int)getpid();
+ }
if (!quiet)
fprintf(stdout, "Seed set to %d\n", seed);
if (seed < 0)
@@ -1948,8 +1949,7 @@ main(int argc, char **argv)
signal(SIGUSR1, cleanup);
signal(SIGUSR2, cleanup);
- initstate(seed, state, 256);
- setstate(state);
+ srandom(seed);
fd = open(fname,
O_RDWR|(lite ? 0 : O_CREAT|O_TRUNC)|o_direct, 0666);
if (fd < 0) {
--
2.7.4
next prev parent reply other threads:[~2017-08-23 15:48 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-23 15:49 [RFC][PATCH 0/8] Crash consistency xfstest using dm-log-writes Amir Goldstein
2017-08-23 15:49 ` [RFC][PATCH 1/8] common/rc: convert some egrep to grep Amir Goldstein
2017-08-23 15:49 ` [RFC][PATCH 2/8] common/rc: fix _require_xfs_io_command params check Amir Goldstein
2017-08-23 15:49 ` Amir Goldstein [this message]
2017-08-23 15:49 ` [RFC][PATCH 4/8] fsx: fix path of .fsx* files Amir Goldstein
2017-08-23 15:49 ` [RFC][PATCH 5/8] fsx: add support for integrity check with dm-log-writes target Amir Goldstein
2017-08-23 15:49 ` [RFC][PATCH 6/8] log-writes: add replay-log program to replay " Amir Goldstein
2017-08-23 15:49 ` [RFC][PATCH 7/8] fstests: add support for working with " Amir Goldstein
2017-08-23 15:58 ` Amir Goldstein
2017-08-23 16:51 ` Josef Bacik
2017-08-23 15:49 ` [RFC][PATCH 8/8] fstests: add crash consistency fsx test using dm-log-writes Amir Goldstein
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=1503503357-26234-4-git-send-email-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=eguan@redhat.com \
--cc=fstests@vger.kernel.org \
--cc=hch@lst.de \
--cc=jbacik@fb.com \
--cc=linux-fsdevel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).