All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@intel.com>
To: Thomas Gleixner <tglx@linutronix.de>,
	Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Andy Lutomirski <luto@kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>, Andi Kleen <ak@linux.intel.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Joerg Roedel <joro@8bytes.org>, Jiri Olsa <jolsa@redhat.com>,
	linux-kernel@vger.kernel.org, x86@kernel.org
Subject: [PATCH V2 14/20] perf buildid-cache: kcore_copy: Keep a count of phdrs
Date: Thu, 17 May 2018 12:22:02 +0300	[thread overview]
Message-ID: <1526548928-20790-15-git-send-email-adrian.hunter@intel.com> (raw)
In-Reply-To: <1526548928-20790-1-git-send-email-adrian.hunter@intel.com>

In preparation to add more program headers, keep a count of phdrs.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
 tools/perf/util/symbol-elf.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index b13873a6f368..4e7b71e8ac0e 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -1398,6 +1398,7 @@ struct kcore_copy_info {
 	u64 last_symbol;
 	u64 first_module;
 	u64 last_module_symbol;
+	size_t phnum;
 	struct phdr_data kernel_map;
 	struct phdr_data modules_map;
 	struct list_head phdrs;
@@ -1517,6 +1518,8 @@ static int kcore_copy__read_maps(struct kcore_copy_info *kci, Elf *elf)
 	if (kci->modules_map.len)
 		list_add_tail(&kci->modules_map.node, &kci->phdrs);
 
+	kci->phnum = !!kci->kernel_map.len + !!kci->modules_map.len;
+
 	return 0;
 }
 
@@ -1678,7 +1681,6 @@ int kcore_copy(const char *from_dir, const char *to_dir)
 {
 	struct kcore kcore;
 	struct kcore extract;
-	size_t count = 2;
 	int idx = 0, err = -1;
 	off_t offset = page_size, sz, modules_offset = 0;
 	struct kcore_copy_info kci = { .stext = 0, };
@@ -1705,10 +1707,7 @@ int kcore_copy(const char *from_dir, const char *to_dir)
 	if (kcore__init(&extract, extract_filename, kcore.elfclass, false))
 		goto out_kcore_close;
 
-	if (!kci.modules_map.addr)
-		count -= 1;
-
-	if (kcore__copy_hdr(&kcore, &extract, count))
+	if (kcore__copy_hdr(&kcore, &extract, kci.phnum))
 		goto out_extract_close;
 
 	if (kcore__add_phdr(&extract, idx++, offset, kci.kernel_map.addr,
-- 
1.9.1

  parent reply	other threads:[~2018-05-17  9:24 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-17  9:21 [PATCH V2 00/20] perf tools and x86 PTI entry trampolines Adrian Hunter
2018-05-17  9:21 ` [PATCH V2 01/20] kallsyms: Simplify update_iter_mod() Adrian Hunter
2018-05-17  9:21 ` [PATCH V2 02/20] kallsyms, x86: Export addresses of syscall trampolines Adrian Hunter
2018-05-17  9:21 ` [PATCH V2 03/20] x86: Add entry trampolines to kcore Adrian Hunter
2018-05-17 17:52   ` Dave Hansen
2018-05-17 18:09     ` Arnaldo Carvalho de Melo
2018-05-17  9:21 ` [PATCH V2 04/20] x86: kcore: Give entry trampolines all the same offset in kcore Adrian Hunter
2018-05-17 17:54   ` Dave Hansen
2018-05-17  9:21 ` [PATCH V2 05/20] perf tools: Add machine__is() to identify machine arch Adrian Hunter
2018-05-19 11:47   ` [tip:perf/core] perf machine: " tip-bot for Adrian Hunter
2018-05-17  9:21 ` [PATCH V2 06/20] perf tools: Fix kernel_start for PTI on x86 Adrian Hunter
2018-05-19 11:48   ` [tip:perf/core] " tip-bot for Adrian Hunter
2018-05-17  9:21 ` [PATCH V2 07/20] perf tools: Add machine__nr_cpus_avail() Adrian Hunter
2018-05-17  9:21 ` [PATCH V2 08/20] perf tools: Workaround missing maps for x86 PTI entry trampolines Adrian Hunter
2018-05-17  9:21 ` [PATCH V2 09/20] perf tools: Fix map_groups__split_kallsyms() for entry trampoline symbols Adrian Hunter
2018-05-17  9:21 ` [PATCH V2 10/20] perf tools: Allow for extra kernel maps Adrian Hunter
2018-05-17  9:21 ` [PATCH V2 11/20] perf tools: Create maps for x86 PTI entry trampolines Adrian Hunter
2018-05-17  9:22 ` [PATCH V2 12/20] perf tools: Synthesize and process mmap events " Adrian Hunter
2018-05-17  9:22 ` [PATCH V2 13/20] perf buildid-cache: kcore_copy: Keep phdr data in a list Adrian Hunter
2018-05-17  9:22 ` Adrian Hunter [this message]
2018-05-17  9:22 ` [PATCH V2 15/20] perf buildid-cache: kcore_copy: Calculate offset from phnum Adrian Hunter
2018-05-17  9:22 ` [PATCH V2 16/20] perf buildid-cache: kcore_copy: Layout sections Adrian Hunter
2018-05-17  9:22 ` [PATCH V2 17/20] perf buildid-cache: kcore_copy: Iterate phdrs Adrian Hunter
2018-05-17  9:22 ` [PATCH V2 18/20] perf buildid-cache: kcore_copy: Get rid of kernel_map Adrian Hunter
2018-05-17  9:22 ` [PATCH V2 19/20] perf buildid-cache: kcore_copy: Copy x86 PTI entry trampoline sections Adrian Hunter
2018-05-17  9:22 ` [PATCH V2 20/20] perf buildid-cache: kcore_copy: Amend the offset of sections that remap kernel text Adrian Hunter

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=1526548928-20790-15-git-send-email-adrian.hunter@intel.com \
    --to=adrian.hunter@intel.com \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=jolsa@redhat.com \
    --cc=joro@8bytes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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.