X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.1;h=1c90e4a55eafa49e666a9e6581edeb0e76741ae3;hb=d05db492c6bc4263fba1088b33850bda35dc325b;hp=c905e9ae6a5fc921e708c3286d65ad07083164d0;hpb=ea2c559911d9cd4fa71c561cfd794ddef1529f57;p=fio.git diff --git a/fio.1 b/fio.1 index c905e9ae..1c90e4a5 100644 --- a/fio.1 +++ b/fio.1 @@ -738,12 +738,13 @@ Accepted values are: .RS .TP .B none -The \fBzonerange\fR, \fBzonesize\fR and \fBzoneskip\fR parameters are ignored. +The \fBzonerange\fR, \fBzonesize\fR \fBzonecapacity\fR and \fBzoneskip\fR +parameters are ignored. .TP .B strided I/O happens in a single zone until \fBzonesize\fR bytes have been transferred. After that number of bytes has been transferred processing of the next zone -starts. +starts. The \fBzonecapacity\fR parameter is ignored. .TP .B zbd Zoned block device mode. I/O happens sequentially in each zone, even if random @@ -771,6 +772,14 @@ zoned block device, the specified \fBzonesize\fR must be 0 or equal to the device zone size. For a regular block device or file, the specified \fBzonesize\fR must be at least 512B. .TP +.BI zonecapacity \fR=\fPint +For \fBzonemode\fR=zbd, this defines the capacity of a single zone, which is +the accessible area starting from the zone start address. This parameter only +applies when using \fBzonemode\fR=zbd in combination with regular block devices. +If not specified it defaults to the zone size. If the target device is a zoned +block device, the zone capacity is obtained from the device information and this +option is ignored. +.TP .BI zoneskip \fR=\fPint For \fBzonemode\fR=strided, the number of bytes to skip after \fBzonesize\fR bytes of data have been transferred. @@ -804,7 +813,11 @@ so. Default: false. When running a random write test across an entire drive many more zones will be open than in a typical application workload. Hence this command line option that allows to limit the number of open zones. The number of open zones is -defined as the number of zones to which write commands are issued. +defined as the number of zones to which write commands are issued by all +threads/processes. +.TP +.BI job_max_open_zones \fR=\fPint +Limit on the number of simultaneously opened zones per single thread/process. .TP .BI zone_reset_threshold \fR=\fPfloat A number between zero and one that indicates the ratio of logical blocks with @@ -1853,6 +1866,22 @@ than normal. When hipri is set this determines the probability of a pvsync2 I/O being high priority. The default is 100%. .TP +.BI (pvsync2,libaio,io_uring)nowait +By default if a request cannot be executed immediately (e.g. resource starvation, +waiting on locks) it is queued and the initiating process will be blocked until +the required resource becomes free. +This option sets the RWF_NOWAIT flag (supported from the 4.14 Linux kernel) and +the call will return instantly with EAGAIN or a partial result rather than waiting. + +It is useful to also use \fBignore_error\fR=EAGAIN when using this option. +Note: glibc 2.27, 2.28 have a bug in syscall wrappers preadv2, pwritev2. +They return EOPNOTSUP instead of EAGAIN. + +For cached I/O, using this option usually means a request operates only with +cached data. Currently the RWF_NOWAIT flag does not supported for cached write. +For direct I/O, requests will only succeed if cache invalidation isn't required, +file blocks are fully allocated and the disk request could be issued immediately. +.TP .BI (cpuio)cpuload \fR=\fPint Attempt to use the specified percentage of CPU cycles. This is a mandatory option when using cpuio I/O engine. @@ -2307,7 +2336,9 @@ replay, the file needs to be turned into a blkparse binary data file first You can specify a number of files by separating the names with a ':' character. See the \fBfilename\fR option for information on how to escape ':' characters within the file names. These files will be sequentially assigned to -job clones created by \fBnumjobs\fR. +job clones created by \fBnumjobs\fR. '-' is a reserved name, meaning read from +stdin, notably if \fBfilename\fR is set to '-' which means stdin as well, +then this flag can't be set to '-'. .TP .BI read_iolog_chunked \fR=\fPbool Determines how iolog is read. If false (default) entire \fBread_iolog\fR will @@ -2538,7 +2569,8 @@ 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. @@ -2546,15 +2578,27 @@ 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 @@ -3843,7 +3887,8 @@ Fio supports a variety of log file formats, for logging latencies, bandwidth, and IOPS. The logs share a common format, which looks like this: .RS .P -time (msec), value, data direction, block size (bytes), offset (bytes) +time (msec), value, data direction, block size (bytes), offset (bytes), +command priority .RE .P `Time' for the log entry is always in milliseconds. The `value' logged depends @@ -3877,6 +3922,9 @@ The entry's `block size' is always in bytes. The `offset' is the position in byt from the start of the file for that particular I/O. The logging of the offset can be toggled with \fBlog_offset\fR. .P +`Command priority` is 0 for normal priority and 1 for high priority. This is controlled +by the ioengine specific \fBcmdprio_percentage\fR. +.P Fio defaults to logging every individual I/O but when windowed logging is set through \fBlog_avg_msec\fR, either the average (by default) or the maximum (\fBlog_max_value\fR is set) `value' seen over the specified period of time