Running Ubuntu 16.04 on a Power8 OpenPower server. I'm running iperf <ver> against a 56GbE NIC limited to 40Gb by infrastructure.</ver>
Any long runs result in Segfaults. Our typical test run is 4 cycles of 15 minutes of sustained throughput. However, it first segfaulted at 900 seconds. I then tryed 300 seconds, and it segfaulted again. 30 second runs seem to work:
Client connecting to 10.20.30.1, TCP port 5001
TCP window size: 325 KByte (default)
[ 6] local 10.20.31.49 port 42130 connected with 10.20.30.1 port 5001
[ 3] local 10.20.31.49 port 42126 connected with 10.20.30.1 port 5001
[ 4] local 10.20.31.49 port 42124 connected with 10.20.30.1 port 5001
[ 5] local 10.20.31.49 port 42128 connected with 10.20.30.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 6] 0.0-30.0 sec 33.8 GBytes 9.68 Gbits/sec
[ 3] 0.0-30.0 sec 34.0 GBytes 9.73 Gbits/sec
[ 4] 0.0-30.0 sec 31.2 GBytes 8.92 Gbits/sec
[ 5] 0.0-30.0 sec 31.2 GBytes 8.95 Gbits/sec
[SUM] 0.0-30.0 sec 130 GBytes 37.3 Gbits/sec
Client connecting to 10.20.30.1, TCP port 5001
TCP window size: 325 KByte (default)
[ 6] local 10.20.31.49 port 42142 connected with 10.20.30.1 port 5001
[ 4] local 10.20.31.49 port 42136 connected with 10.20.30.1 port 5001
[ 3] local 10.20.31.49 port 42138 connected with 10.20.30.1 port 5001
[ 5] local 10.20.31.49 port 42140 connected with 10.20.30.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 6] 0.0-300.0 sec 330 GBytes 9.45 Gbits/sec
[ 4] 0.0-300.0 sec 319 GBytes 9.14 Gbits/sec
[ 3] 0.0-300.0 sec 330 GBytes 9.45 Gbits/sec
[ 5] 0.0-300.0 sec 321 GBytes 9.19 Gbits/sec
Segmentation fault (core dumped)
I've attached a core dump from one of the failures (the rest didn't generate a dump and no stack trace appeared in syslog.
Errr, that's version 2.0.5, sorry. Forgot to fix that in the initial post.
I also built and tried 2.0.9 and got the same result:
ubuntu@fesenkov:~/iperf-2.0.9/src$ ./iperf --version
iperf version 2.0.9 (9 Sept 2016) pthreads
ubuntu@fesenkov:~/iperf-2.0.9/src$ ./iperf -c 10.20.30.1 -P 4 -t 250
Client connecting to 10.20.30.1, TCP port 5001
TCP window size: 325 KByte (default)
[ 6] local 10.20.31.49 port 42276 connected with 10.20.30.1 port 5001
[ 3] local 10.20.31.49 port 42272 connected with 10.20.30.1 port 5001
[ 5] local 10.20.31.49 port 42274 connected with 10.20.30.1 port 5001
[ 4] local 10.20.31.49 port 42270 connected with 10.20.30.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 6] 0.0-250.0 sec 281 GBytes 9.66 Gbits/sec
[ 3] 0.0-250.0 sec 302 GBytes 10.4 Gbits/sec
[ 5] 0.0-250.0 sec 263 GBytes 9.02 Gbits/sec
[ 4] 0.0-250.0 sec 237 GBytes 8.14 Gbits/sec
Segmentation fault (core dumped)
Additionally, this is a POWER8NVL machine with 160 cores and 512Gb RAM, so it's not being resource starved here.
hmm, not sure how to read the crash file. Is it possible for you decode it with GDB and post the decoded stack trace?
Thanks,
Bob
I had to google this, debugging with gdb is not something I do very often at all...
(gdb) thread apply all bt full
Thread 3 (Thread 0x3fffb2d66910 (LWP 53527)):
0 0x00003fffb2a70110 in __pthread_cond_wait (cond=0x3aa765f8 <thread_snum_cond>, mutex=0x3aa76628 <thread_snum_cond+48>)</thread_snum_cond+48></thread_snum_cond>
1 0x000000003aa6108c in ?? ()
No symbol table info available.
2 0x000000003aa53eb4 in ?? ()
No symbol table info available.
3 0x00003fffb28b309c in generic_start_main (main=0x3aa53ce0, argc=<optimized out="">, argv=0x3fffea7d4e38, auxvec=0x3fffea7d4f20,</optimized>
4 0x00003fffb28b3298 in __libc_start_main (argc=<optimized out="">, argv=<optimized out="">, ev=<optimized out="">, auxvec=<optimized out="">,</optimized></optimized></optimized></optimized>
No locals.
5 0x0000000000000000 in ?? ()
No symbol table info available.
Thread 2 (Thread 0x3fffabfff180 (LWP 53531)):
0 0x000000003aa594a4 in ?? ()
No symbol table info available.
1 0x000000003aa55088 in ?? ()
No symbol table info available.
2 0x000000003aa556a0 in ?? ()
No symbol table info available.
3 0x000000003aa60e38 in ?? ()
No symbol table info available.
4 0x00003fffb2a68070 in start_thread (arg=0x3fffabfff180) at pthread_create.c:335
5 0x00003fffb29b3a30 in clone () at ../sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S:96
No locals.
Thread 1 (Thread 0x3fffb0f9f180 (LWP 53532)):
0 __strlen_power7 () at ../sysdeps/powerpc/powerpc64/power7/strlen.S:32
No locals.
1 0x00003fffb28eafc4 in _IO_vfprintf_internal (s=0x3fffb0f9e2b0, format=0x3aa63d40 "%4.2f %s", ap=0x3fffb0f9e498 "\300\340\245:")
2 0x00003fffb29c8a34 in ___vsnprintf_chk (s=0x3aa765b8 <buffer> "0.00 GByte", maxlen=<optimized out="">, flags=<optimized out="">,</optimized></optimized></buffer>
3 0x00003fffb29c8938 in ___snprintf_chk (s=<optimized out="">, maxlen=<optimized out="">, flags=<optimized out="">, slen=<optimized out="">,</optimized></optimized></optimized></optimized>
4 0x000000003aa60448 in ?? ()
No symbol table info available.
5 0x000000003aa57c1c in ?? ()
No symbol table info available.
6 0x000000003aa5a100 in ?? ()
No symbol table info available.
7 0x000000003aa5a4e0 in ?? ()
No symbol table info available.
8 0x000000003aa5af4c in ?? ()
No symbol table info available.
9 0x000000003aa5b258 in ?? ()
No symbol table info available.
10 0x000000003aa60c48 in ?? ()
No symbol table info available.
11 0x00003fffb2a68070 in start_thread (arg=0x3fffb0f9f180) at pthread_create.c:335
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Hi Jeff,
Is it possible to try the latest code, i.e. use
Then compile with symbols using from the iperf2-code directory:
Also, post the config.h file?
Thanks,
Bob
update to iperf 2.0.14