From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: Clark Williams <williams@redhat.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Jiri Olsa <jolsa@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
David Ahern <dsahern@gmail.com>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 16/19] perf bench: Fix numa report output code
Date: Mon, 25 Jun 2018 14:40:42 -0300 [thread overview]
Message-ID: <20180625174045.25765-17-acme@kernel.org> (raw)
In-Reply-To: <20180625174045.25765-1-acme@kernel.org>
From: Jiri Olsa <jolsa@kernel.org>
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: Jiri 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.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/bench/numa.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/perf/bench/numa.c b/tools/perf/bench/numa.c
index 63eb49082774..44195514b19e 100644
--- a/tools/perf/bench/numa.c
+++ b/tools/perf/bench/numa.c
@@ -1098,7 +1098,7 @@ static void *worker_thread(void *__tdata)
u8 *global_data;
u8 *process_data;
u8 *thread_data;
- u64 bytes_done;
+ u64 bytes_done, secs;
long work_done;
u32 l;
struct rusage rusage;
@@ -1254,7 +1254,8 @@ static void *worker_thread(void *__tdata)
timersub(&stop, &start0, &diff);
td->runtime_ns = diff.tv_sec * NSEC_PER_SEC;
td->runtime_ns += diff.tv_usec * NSEC_PER_USEC;
- td->speed_gbs = bytes_done / (td->runtime_ns / NSEC_PER_SEC) / 1e9;
+ secs = td->runtime_ns / NSEC_PER_SEC;
+ td->speed_gbs = secs ? bytes_done / secs / 1e9 : 0;
getrusage(RUSAGE_THREAD, &rusage);
td->system_time_ns = rusage.ru_stime.tv_sec * NSEC_PER_SEC;
--
2.14.3
next prev parent reply other threads:[~2018-06-25 17:40 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-25 17:40 [GIT PULL 00/19] perf/urgent fixes for 4.18 Arnaldo Carvalho de Melo
2018-06-25 17:40 ` Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 01/19] perf record: Support s390 random socket_id assignment Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 02/19] perf test session topology: Fix test on s390 Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 03/19] perf report powerpc: Fix crash if callchain is empty Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 04/19] perf tests: Add event parsing error handling to parse events test Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 05/19] perf tests: Add valid callback for parse-events test Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 06/19] perf intel-pt: Fix packet decoding of CYC packets Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 07/19] tools headers uapi: Synchronize drm/drm.h Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 08/19] perf tools: Update x86's syscall_64.tbl, adding 'io_pgetevents' and 'rseq' Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 09/19] tools include powerpc: Update arch/powerpc/include/uapi/asm/unistd.h copy to get 'rseq' syscall Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 10/19] tools include uapi: Update if_link.h to pick IFLA_{BRPORT_ISOLATED,VXLAN_TTL_INHERIT} Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 11/19] tools include uapi: Synchronize bpf.h with the kernel Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 12/19] perf tools: Fix a clang 7.0 compilation error Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 13/19] perf alias: Remove trailing newline when reading sysfs files Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 14/19] perf alias: Rebuild alias expression string to make it comparable Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 15/19] perf stat: Remove duplicate event counting Arnaldo Carvalho de Melo
2018-06-25 17:40 ` Arnaldo Carvalho de Melo [this message]
2018-06-25 17:40 ` [PATCH 17/19] perf script: Add missing output fields in a hint Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 18/19] perf script: Fix crash because of missing evsel->priv Arnaldo Carvalho de Melo
2018-06-25 17:40 ` [PATCH 19/19] perf tools: Fix crash caused by accessing feat_ops[HEADER_LAST_FEATURE] Arnaldo Carvalho de Melo
2018-06-25 20:26 ` [GIT PULL 00/19] perf/urgent fixes for 4.18 Arnaldo Carvalho de Melo
2018-06-25 20:26 ` Arnaldo Carvalho de Melo
2018-06-26 6:46 ` Ingo Molnar
2018-06-26 6:46 ` Ingo Molnar
2018-06-26 6:46 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180625174045.25765-17-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=williams@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.