Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use unsigned short type for exit_what and stonewall #1066

Merged
merged 1 commit into from
Aug 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions cconv.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,8 +237,8 @@ void convert_thread_options_to_cpu(struct thread_options *o,
o->loops = le32_to_cpu(top->loops);
o->mem_type = le32_to_cpu(top->mem_type);
o->mem_align = le32_to_cpu(top->mem_align);
o->exit_what = le16_to_cpu(top->exit_what);
sitsofe marked this conversation as resolved.
Show resolved Hide resolved
o->stonewall = le16_to_cpu(top->stonewall);
o->exit_what = le32_to_cpu(top->exit_what);
o->stonewall = le32_to_cpu(top->stonewall);
o->new_group = le32_to_cpu(top->new_group);
o->numjobs = le32_to_cpu(top->numjobs);
o->cpus_allowed_policy = le32_to_cpu(top->cpus_allowed_policy);
Expand Down Expand Up @@ -437,8 +437,8 @@ void convert_thread_options_to_net(struct thread_options_pack *top,
top->loops = cpu_to_le32(o->loops);
top->mem_type = cpu_to_le32(o->mem_type);
top->mem_align = cpu_to_le32(o->mem_align);
top->exit_what = cpu_to_le16(o->exit_what);
top->stonewall = cpu_to_le16(o->stonewall);
top->exit_what = cpu_to_le32(o->exit_what);
top->stonewall = cpu_to_le32(o->stonewall);
top->new_group = cpu_to_le32(o->new_group);
top->numjobs = cpu_to_le32(o->numjobs);
top->cpus_allowed_policy = cpu_to_le32(o->cpus_allowed_policy);
Expand Down
8 changes: 4 additions & 4 deletions examples/exitwhat.fio
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# We want to run fast1 as long as slow1 is running, but also have a cumulative
# report of fast1 (group_reporting=1/new_group=1). exitall=1 would not cause
# fast1 to stop after slow1 is done. Setting exit_what=stonewall will cause
# alls jobs up until the next stonewall=1 setting to be stopped, when job slow1
# alls jobs up until the next stonewall setting to be stopped, when job slow1
# finishes.
# In this example skipping forward to slow2/fast2. slow2 has exit_what=all set,
# which means all jobs will be cancelled when slow2 finishes. In particular,
Expand All @@ -15,7 +15,7 @@ group_reporting=1
exitall=1

[slow1]
rw=r
rw=read
numjobs=1
ioengine=sync
new_group=1
Expand All @@ -32,8 +32,8 @@ iodepth=32
rate=300,300,300

[slow2]
stonewall=1
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this change in job files is required, then we'll have to fix it so that's not the case. If it's not required, don't make the change in the job file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stonewalls usage is not documented like this. I've changed the man page and also fixed some other stuff in the example. Now it's up to you if we should use stonewall=1 in the example or not. Both will work and it's not required to set a value. But all other examples just use stonewall without any value assigned.

rw=w
stonewall
rw=write
numjobs=1
ioengine=sync
new_group=1
Expand Down
29 changes: 21 additions & 8 deletions fio.1
Original file line number Diff line number Diff line change
Expand Up @@ -2569,23 +2569,36 @@ been exceeded before retrying operations.
Wait for preceding jobs in the job file to exit, before starting this
one. Can be used to insert serialization points in the job file. A stone
wall also implies starting a new reporting group, see
\fBgroup_reporting\fR.
\fBgroup_reporting\fR. Optionally you can use `stonewall=0` to disable or
`stonewall=1` to enable it.
.TP
.BI exitall
By default, fio will continue running all other jobs when one job finishes.
Sometimes this is not the desired action. Setting \fBexitall\fR will instead
make fio terminate all jobs in the same group, as soon as one job of that
group finishes.
.TP
.BI exit_what
.BI exit_what \fR=\fPstr
By default, fio will continue running all other jobs when one job finishes.
Sometimes this is not the desired action. Setting \fBexit_all\fR will instead
Sometimes this is not the desired action. Setting \fBexitall\fR will instead
make fio terminate all jobs in the same group. The option \fBexit_what\fR
allows to control which jobs get terminated when \fBexitall\fR is enabled. The
default is \fBgroup\fR and does not change the behaviour of \fBexitall\fR. The
setting \fBall\fR terminates all jobs. The setting \fBstonewall\fR terminates
all currently running jobs across all groups and continues execution with the
next stonewalled group.
allows you to control which jobs get terminated when \fBexitall\fR is enabled.
The default value is \fBgroup\fR.
The allowed values are:
.RS
.RS
.TP
.B all
terminates all jobs.
.TP
.B group
is the default and does not change the behaviour of \fBexitall\fR.
.TP
.B stonewall
terminates all currently running jobs across all groups and continues
execution with the next stonewalled group.
.RE
.RE
.TP
.BI exec_prerun \fR=\fPstr
Before running this job, issue the command specified through
Expand Down
2 changes: 1 addition & 1 deletion server.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ struct fio_net_cmd_reply {
};

enum {
FIO_SERVER_VER = 83,
FIO_SERVER_VER = 84,

FIO_SERVER_MAX_FRAGMENT_PDU = 1024,
FIO_SERVER_MAX_CMD_MB = 2048,
Expand Down
9 changes: 4 additions & 5 deletions thread_options.h
Original file line number Diff line number Diff line change
Expand Up @@ -202,8 +202,8 @@ struct thread_options {

unsigned long long max_latency;

unsigned short exit_what;
unsigned short stonewall;
unsigned int exit_what;
unsigned int stonewall;
unsigned int new_group;
unsigned int numjobs;
os_cpu_mask_t cpumask;
Expand Down Expand Up @@ -494,8 +494,8 @@ struct thread_options_pack {
uint32_t mem_type;
uint32_t mem_align;

uint16_t exit_what;
uint16_t stonewall;
uint32_t exit_what;
uint32_t stonewall;
uint32_t new_group;
uint32_t numjobs;
/*
Expand Down Expand Up @@ -546,7 +546,6 @@ struct thread_options_pack {
uint32_t lat_percentiles;
uint32_t slat_percentiles;
uint32_t percentile_precision;
uint32_t pad3;
fio_fp64_t percentile_list[FIO_IO_U_LIST_MAX_LEN];

uint8_t read_iolog_file[FIO_TOP_STR_MAX];
Expand Down