All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Jan Stancek <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, adrian.hunter@intel.com,
	paulus@samba.org, hpa@zytor.com, fweisbec@gmail.com,
	tglx@linutronix.de, cjashfor@linux.vnet.ibm.com,
	a.p.zijlstra@chello.nl, acme@redhat.com, dsahern@gmail.com,
	mingo@kernel.org, jolsa@kernel.org, jstancek@redhat.com,
	namhyung@kernel.org
Subject: [tip:perf/core] perf tests: Stop reading if objdump output crossed sections
Date: Mon, 14 Sep 2015 23:58:23 -0700	[thread overview]
Message-ID: <tip-edfdb7eab0fe5f98f2951598dc679b71bdb3e16b@git.kernel.org> (raw)
In-Reply-To: <9d1ea95e5f9884fdff1be6f761a2feabef37412c.1441181335.git.jstancek@redhat.com>

Commit-ID:  edfdb7eab0fe5f98f2951598dc679b71bdb3e16b
Gitweb:     http://git.kernel.org/tip/edfdb7eab0fe5f98f2951598dc679b71bdb3e16b
Author:     Jan Stancek <jstancek@redhat.com>
AuthorDate: Wed, 2 Sep 2015 10:19:16 +0200
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 14 Sep 2015 12:50:12 -0300

perf tests: Stop reading if objdump output crossed sections

objdump output can span across multiple sections:

  Disassembly of section .text:
    0000000000000008 <crc32c+0x8>:
       8:       48 89 e5                mov    %rsp,%rbp
       b:       53                      push   %rbx
       c:       8b 01                   mov    (%rcx),%eax
    <snip>
      6b:       90                      nop

  Disassembly of section .init.text:
    0000000000000008 <init_module+0x8>:
       8:       00 00                   add    %al,(%rax)
       a:       00 00                   add    %al,(%rax)
       c:       48 89 e5

Stop further reading if an address starts going backwards, assuming we
crossed sections.

Signed-off-by: Jan Stancek <jstancek@redhat.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/9d1ea95e5f9884fdff1be6f761a2feabef37412c.1441181335.git.jstancek@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/tests/code-reading.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c
index c409409..8145c67 100644
--- a/tools/perf/tests/code-reading.c
+++ b/tools/perf/tests/code-reading.c
@@ -79,7 +79,7 @@ static int read_objdump_output(FILE *f, void *buf, size_t *len, u64 start_addr)
 	size_t line_len, off_last = 0;
 	ssize_t ret;
 	int err = 0;
-	u64 addr;
+	u64 addr, last_addr = start_addr;
 
 	while (off_last < *len) {
 		size_t off, read_bytes, written_bytes;
@@ -101,6 +101,11 @@ static int read_objdump_output(FILE *f, void *buf, size_t *len, u64 start_addr)
 
 		if (sscanf(line, "%"PRIx64, &addr) != 1)
 			continue;
+		if (addr < last_addr) {
+			pr_debug("addr going backwards, read beyond section?\n");
+			break;
+		}
+		last_addr = addr;
 
 		/* copy it from temporary buffer to 'buf' according
 		 * to address on current objdump line */

  parent reply	other threads:[~2015-09-15  6:58 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-02  8:19 [PATCH v2 1/4] perf tests: take into account address of each objdump line Jan Stancek
2015-09-02  8:19 ` [PATCH v2 2/4] perf tests: make objdump disassemble zero blocks Jan Stancek
2015-09-03  9:11   ` Adrian Hunter
2015-09-03 11:23     ` [PATCH v3 " Jan Stancek
2015-09-03 11:35       ` Adrian Hunter
2015-09-03 15:14         ` Arnaldo Carvalho de Melo
2015-09-03 16:19           ` Jan Stancek
2015-09-03 16:37             ` Arnaldo Carvalho de Melo
2015-09-15  6:58       ` [tip:perf/core] perf tests: Make " tip-bot for Jan Stancek
2015-09-02  8:19 ` [PATCH v2 3/4] perf tests: stop reading if objdump output crossed sections Jan Stancek
2015-09-03  9:12   ` Adrian Hunter
2015-09-15  6:58   ` tip-bot for Jan Stancek [this message]
2015-09-02  8:19 ` [PATCH v2 4/4] perf tests: print objdump/dso buffers if they don't match Jan Stancek
2015-09-03  9:12   ` Adrian Hunter
2015-09-15  6:58   ` [tip:perf/core] perf tests: Print objdump/dso buffers if they don 't match tip-bot for Jan Stancek
2015-09-03  9:08 ` [PATCH v2 1/4] perf tests: take into account address of each objdump line Adrian Hunter
2015-09-03 11:23   ` [PATCH v3 " Jan Stancek
2015-09-03 11:35     ` Adrian Hunter
2015-09-15  6:57 ` [tip:perf/core] perf tests: Take " tip-bot for Jan Stancek

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=tip-edfdb7eab0fe5f98f2951598dc679b71bdb3e16b@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=adrian.hunter@intel.com \
    --cc=cjashfor@linux.vnet.ibm.com \
    --cc=dsahern@gmail.com \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jolsa@kernel.org \
    --cc=jstancek@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=paulus@samba.org \
    --cc=tglx@linutronix.de \
    /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.