• Jiri Olsa's avatar
    perf bench: Fix numa report output code · 98310707
    Jiri Olsa authored
    Currently we can hit following assert when running numa bench:
    
      $ perf bench numa mem -p 3 -t 1 -P 512 -s 100 -zZ0cm --thp 1
      perf: bench/numa.c:1577: __bench_numa: Assertion `!(!(((wait_stat) & 0x7f) == 0))' failed.
    
    The assertion is correct, because we hit the SIGFPE in following line:
    
      Thread 2.2 "thread 0/0" received signal SIGFPE, Arithmetic exception.
      [Switching to Thread 0x7fffd28c6700 (LWP 11750)]
      0x000.. in worker_thread (__tdata=0x7.. ) at bench/numa.c:1257
      1257 td->speed_gbs = bytes_done / (td->runtime_ns / NSEC_PER_SEC) / 1e9;
    
    We don't check if the runtime is actually bigger than 1 second,
    and thus this might end up with zero division within FPU.
    
    Adding the check to prevent this.
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20180620094036.17278-1-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    98310707
numa.c 43.7 KB