* json output issue on solaris sparc
@ 2014-03-04 10:19 Sébastien Bouchex Bellomié
2014-03-06 21:47 ` Jens Axboe
0 siblings, 1 reply; 5+ messages in thread
From: Sébastien Bouchex Bellomié @ 2014-03-04 10:19 UTC (permalink / raw)
To: fio@vger.kernel.org
Hello,
I'm trying fio on solaris sparc and I'm having an strange issue : io_bytes, bw, iops, runtime values are 0 when json output is enabled but contains valid values when using text (or terse) output format.
I have tested on solaris x64 and everything is fine.
Output (text format) :
---
Starting 1 process
Jobs: 1 (f=1): [w] [-.-% done] [0KB/452.7MB/0KB /s] [0/14.5K/0 iops] [eta 00m:00s]
random_rw: (groupid=0, jobs=1): err= 0: pid=15677: Tue Mar 4 11:04:24 2014
write: io=1024.0MB, bw=454126KB/s, iops=14191, runt= 2309msec
slat (usec): min=7, max=1430, avg= 8.54, stdev= 7.97
clat (usec): min=22, max=387, avg=59.75, stdev=10.36
lat (usec): min=56, max=1817, avg=68.29, stdev=14.43
clat percentiles (usec):
| 1.00th=[ 50], 5.00th=[ 50], 10.00th=[ 51], 20.00th=[ 52],
| 30.00th=[ 56], 40.00th=[ 57], 50.00th=[ 59], 60.00th=[ 60],
| 70.00th=[ 61], 80.00th=[ 62], 90.00th=[ 69], 95.00th=[ 71],
| 99.00th=[ 98], 99.50th=[ 123], 99.90th=[ 165], 99.95th=[ 171],
| 99.99th=[ 195]
bw (KB /s): min=426112, max=471552, per=99.26%, avg=450752.00, stdev=21035.79
lat (usec) : 50=0.81%, 100=98.28%, 250=0.91%, 500=0.01%
cpu : usr=109.53%, sys=74.39%, ctx=32833, majf=0, minf=0
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued : total=r=0/w=32768/d=0, short=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: io=1024.0MB, aggrb=454125KB/s, minb=454125KB/s, maxb=454125KB/s, mint=2309msec, maxt=2309msec
---
Output (json format):
---
{
"fio version" : "fio-2.1.6",
"jobs" : [
{
"jobname" : "random_rw",
"groupid" : 0,
"error" : 0,
"read" : {
"io_bytes" : 0,
"bw" : 0,
"iops" : 0,
"runtime" : 0,
"slat" : {
"min" : 0,
"max" : 0,
"mean" : 0.00,
"stddev" : 0.00
},
"clat" : {
"min" : 0,
"max" : 0,
"mean" : 0.00,
"stddev" : 0.00,
"percentile" : {
"1.000000" : 0,
"5.000000" : 0,
"10.000000" : 0,
"20.000000" : 0,
"30.000000" : 0,
"40.000000" : 0,
"50.000000" : 0,
"60.000000" : 0,
"70.000000" : 0,
"80.000000" : 0,
"90.000000" : 0,
"95.000000" : 0,
"99.000000" : 0,
"99.500000" : 0,
"99.900000" : 0,
"99.950000" : 0,
"99.990000" : 0,
"0.00" : 0,
"0.00" : 0,
"0.00" : 0
}
},
"lat" : {
"min" : 0,
"max" : 0,
"mean" : 0.00,
"stddev" : 0.00
},
"bw_min" : 0,
"bw_max" : 0,
"bw_agg" : 0.00,
"bw_mean" : 0.00,
"bw_dev" : 0.00
},
"write" : {
"io_bytes" : 0,
"bw" : 0,
"iops" : 0,
"runtime" : 0,
"slat" : {
"min" : 7,
"max" : 888,
"mean" : 9.37,
"stddev" : 5.37
},
"clat" : {
"min" : 42,
"max" : 81326,
"mean" : 103.08,
"stddev" : 732.51,
"percentile" : {
"1.000000" : 50,
"5.000000" : 52,
"10.000000" : 53,
"20.000000" : 58,
"30.000000" : 60,
"40.000000" : 62,
"50.000000" : 66,
"60.000000" : 70,
"70.000000" : 73,
"80.000000" : 107,
"90.000000" : 205,
"95.000000" : 213,
"99.000000" : 318,
"99.500000" : 490,
"99.900000" : 548,
"99.950000" : 596,
"99.990000" : 46848,
"0.00" : 0,
"0.00" : 0,
"0.00" : 0
}
},
"lat" : {
"min" : 50,
"max" : 81335,
"mean" : 112.45,
"stddev" : 732.64
},
"bw_min" : 194880,
"bw_max" : 375488,
"bw_agg" : 270316.56,
"bw_mean" : 270316.56,
"bw_dev" : 60821.06
},
"trim" : {
"io_bytes" : 0,
"bw" : 0,
"iops" : 0,
"runtime" : 0,
"slat" : {
"min" : 0,
"max" : 0,
"mean" : 0.00,
"stddev" : 0.00
},
"clat" : {
"min" : 0,
"max" : 0,
"mean" : 0.00,
"stddev" : 0.00,
"percentile" : {
"1.000000" : 0,
"5.000000" : 0,
"10.000000" : 0,
"20.000000" : 0,
"30.000000" : 0,
"40.000000" : 0,
"50.000000" : 0,
"60.000000" : 0,
"70.000000" : 0,
"80.000000" : 0,
"90.000000" : 0,
"95.000000" : 0,
"99.000000" : 0,
"99.500000" : 0,
"99.900000" : 0,
"99.950000" : 0,
"99.990000" : 0,
"0.00" : 0,
"0.00" : 0,
"0.00" : 0
}
},
"lat" : {
"min" : 0,
"max" : 0,
"mean" : 0.00,
"stddev" : 0.00
},
"bw_min" : 0,
"bw_max" : 0,
"bw_agg" : 0.00,
"bw_mean" : 0.00,
"bw_dev" : 0.00
},
"usr_cpu" : 105.77,
"sys_cpu" : 79.71,
"ctx" : 0,
"majf" : 0,
"minf" : 0,
"iodepth_level" : {
"1" : 100.00,
"2" : 0.00,
"4" : 0.00,
"8" : 0.00,
"16" : 0.00,
"32" : 0.00,
">=64" : 0.00
},
"latency_us" : {
"2" : 0.00,
"4" : 0.00,
"10" : 0.00,
"20" : 0.00,
"50" : 0.38,
"100" : 78.60,
"250" : 17.83,
"500" : 2.83,
"750" : 0.35,
"1000" : 0.01
},
"latency_ms" : {
"2" : 0.00,
"4" : 0.00,
"10" : 0.01,
"20" : 0.01,
"50" : 0.01,
"100" : 0.01,
"250" : 0.00,
"500" : 0.00,
"750" : 0.00,
"1000" : 0.00,
"2000" : 0.00,
">=2000" : 0.00
},
"latency_depth" : 1,
"latency_target" : 0,
"latency_percentile" : 100.00,
"latency_window" : 0
}
]
}
---
My profile file is :
---
[global]
ioengine=solarisaio
[random_rw]
rw=randwrite
size=1024m
directory=/data/fio
bs=32k
---
I'm using fio-2.1.6 rebuilt with gcc 4.8.0 with the default configure script.
Thanks
Seb
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: json output issue on solaris sparc
2014-03-04 10:19 json output issue on solaris sparc Sébastien Bouchex Bellomié
@ 2014-03-06 21:47 ` Jens Axboe
2014-03-07 7:50 ` Sébastien Bouchex Bellomié
0 siblings, 1 reply; 5+ messages in thread
From: Jens Axboe @ 2014-03-06 21:47 UTC (permalink / raw)
To: Sébastien Bouchex Bellomié, fio@vger.kernel.org
On 03/04/2014 03:19 AM, S�bastien Bouchex Bellomi� wrote:
> Hello,
>
> I'm trying fio on solaris sparc and I'm having an strange issue : io_bytes, bw, iops, runtime values are 0 when json output is enabled but contains valid values when using text (or terse) output format.
> I have tested on solaris x64 and everything is fine.
That's pretty weird... I lost my last SPARC box about 4 years ago, so I
have nothing to test on. I wonder if it's an alignment thing. Is fio a
32-bit or 64-bit application?
--
Jens Axboe
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: json output issue on solaris sparc
2014-03-06 21:47 ` Jens Axboe
@ 2014-03-07 7:50 ` Sébastien Bouchex Bellomié
2014-03-11 14:39 ` Sébastien Bouchex Bellomié
0 siblings, 1 reply; 5+ messages in thread
From: Sébastien Bouchex Bellomié @ 2014-03-07 7:50 UTC (permalink / raw)
To: Jens Axboe, fio@vger.kernel.org
Hi,
I'm using a 32 bit binary. The 64 bit binary is just crashing at startup (bus error)
Seb
-----Original Message-----
From: Jens Axboe [mailto:axboe@kernel.dk]
Sent: jeudi 6 mars 2014 22:47
To: Sébastien Bouchex Bellomié; fio@vger.kernel.org
Subject: Re: json output issue on solaris sparc
On 03/04/2014 03:19 AM, Sébastien Bouchex Bellomié wrote:
> Hello,
>
> I'm trying fio on solaris sparc and I'm having an strange issue : io_bytes, bw, iops, runtime values are 0 when json output is enabled but contains valid values when using text (or terse) output format.
> I have tested on solaris x64 and everything is fine.
That's pretty weird... I lost my last SPARC box about 4 years ago, so I have nothing to test on. I wonder if it's an alignment thing. Is fio a 32-bit or 64-bit application?
--
Jens Axboe
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: json output issue on solaris sparc
2014-03-07 7:50 ` Sébastien Bouchex Bellomié
@ 2014-03-11 14:39 ` Sébastien Bouchex Bellomié
2014-03-11 15:03 ` Jens Axboe
0 siblings, 1 reply; 5+ messages in thread
From: Sébastien Bouchex Bellomié @ 2014-03-11 14:39 UTC (permalink / raw)
To: Jens Axboe, fio@vger.kernel.org
[-- Attachment #1: Type: text/plain, Size: 1911 bytes --]
Hi,
OK, the issue was related to the alignment issue between the thread_options structure and its "packed" version : The lexxx_to_cpu macros are incorrectly casting the pointers and that causes an bus error.
I have fixed the issue by avoid casting the pointers and calling directly the "swap" method.
I have also included a fixed on the thread_options structure regarding the ddir_seq_add variable : Its length was incorrect.
Attached, you will find a patch that's fixed both.
The 32 bit version is still not working on json but since the 64 bit version is working fine, I will not probably work on it.
Seb
-----Original Message-----
From: fio-owner@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On Behalf Of Sébastien Bouchex Bellomié
Sent: vendredi 7 mars 2014 08:51
To: Jens Axboe; fio@vger.kernel.org
Subject: RE: json output issue on solaris sparc
Hi,
I'm using a 32 bit binary. The 64 bit binary is just crashing at startup (bus error)
Seb
-----Original Message-----
From: Jens Axboe [mailto:axboe@kernel.dk]
Sent: jeudi 6 mars 2014 22:47
To: Sébastien Bouchex Bellomié; fio@vger.kernel.org
Subject: Re: json output issue on solaris sparc
On 03/04/2014 03:19 AM, Sébastien Bouchex Bellomié wrote:
> Hello,
>
> I'm trying fio on solaris sparc and I'm having an strange issue : io_bytes, bw, iops, runtime values are 0 when json output is enabled but contains valid values when using text (or terse) output format.
> I have tested on solaris x64 and everything is fine.
That's pretty weird... I lost my last SPARC box about 4 years ago, so I have nothing to test on. I wonder if it's an alignment thing. Is fio a 32-bit or 64-bit application?
--
Jens Axboe
--
To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[-- Attachment #2: Fixed-Solaric-sparc-alignement-issue.patch --]
[-- Type: application/octet-stream, Size: 1269 bytes --]
diff --git a/os/os.h b/os/os.h
index 7f92d1b..2f2d069 100644
--- a/os/os.h
+++ b/os/os.h
@@ -201,28 +201,22 @@
#endif /* FIO_HAVE_BYTEORDER_FUNCS */
#define le16_to_cpu(val) ({ \
- uint16_t *__val = &(val); \
- __le16_to_cpu(*__val); \
+ __le16_to_cpu(val); \
})
#define le32_to_cpu(val) ({ \
- uint32_t *__val = &(val); \
- __le32_to_cpu(*__val); \
+ __le32_to_cpu(val); \
})
#define le64_to_cpu(val) ({ \
- uint64_t *__val = &(val); \
- __le64_to_cpu(*__val); \
+ __le64_to_cpu(val); \
})
#define cpu_to_le16(val) ({ \
- uint16_t *__val = &(val); \
- __cpu_to_le16(*__val); \
+ __cpu_to_le16(val); \
})
#define cpu_to_le32(val) ({ \
- uint32_t *__val = &(val); \
- __cpu_to_le32(*__val); \
+ __cpu_to_le32(val); \
})
#define cpu_to_le64(val) ({ \
- uint64_t *__val = &(val); \
- __cpu_to_le64(*__val); \
+ __cpu_to_le64(val); \
})
#ifndef FIO_HAVE_BLKTRACE
diff --git a/thread_options.h b/thread_options.h
index 4ea6ebd..bacd86b 100644
--- a/thread_options.h
+++ b/thread_options.h
@@ -45,7 +45,7 @@
unsigned int kb_base;
unsigned int unit_base;
unsigned int ddir_seq_nr;
- long ddir_seq_add;
+ long long ddir_seq_add;
unsigned int iodepth;
unsigned int iodepth_low;
unsigned int iodepth_batch;
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: json output issue on solaris sparc
2014-03-11 14:39 ` Sébastien Bouchex Bellomié
@ 2014-03-11 15:03 ` Jens Axboe
0 siblings, 0 replies; 5+ messages in thread
From: Jens Axboe @ 2014-03-11 15:03 UTC (permalink / raw)
To: Sébastien Bouchex Bellomié, fio@vger.kernel.org
On 03/11/2014 08:39 AM, S�bastien Bouchex Bellomi� wrote:
> Hi,
>
> OK, the issue was related to the alignment issue between the thread_options structure and its "packed" version : The lexxx_to_cpu macros are incorrectly casting the pointers and that causes an bus error.
> I have fixed the issue by avoid casting the pointers and calling directly the "swap" method.
>
> I have also included a fixed on the thread_options structure regarding the ddir_seq_add variable : Its length was incorrect.
>
> Attached, you will find a patch that's fixed both.
>
> The 32 bit version is still not working on json but since the 64 bit version is working fine, I will not probably work on it.
Nice work! I have applied the patch.
--
Jens Axboe
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-03-11 15:03 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-04 10:19 json output issue on solaris sparc Sébastien Bouchex Bellomié
2014-03-06 21:47 ` Jens Axboe
2014-03-07 7:50 ` Sébastien Bouchex Bellomié
2014-03-11 14:39 ` Sébastien Bouchex Bellomié
2014-03-11 15:03 ` Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox