linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: tglx@linutronix.de, jpoimboe@redhat.com
Cc: linux-kernel@vger.kernel.org, x86@kernel.org, peterz@infradead.org
Subject: [RFC][PATCH 10/16] objtool: Resize insn_hash
Date: Thu, 12 Mar 2020 14:41:17 +0100	[thread overview]
Message-ID: <20200312135041.994956104@infradead.org> (raw)
In-Reply-To: 20200312134107.700205216@infradead.org

Perf shows we're spending a lot of time in find_insn() and the
statistics show we have around 3.2 million instruction. Increase the
hash table size to reduce the bucket load from around 50 to 3.

This shaves about 2s off of objtool on vmlinux.o runtime, down to 16s.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 tools/objtool/check.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/tools/objtool/check.h
+++ b/tools/objtool/check.h
@@ -50,7 +50,7 @@ struct instruction {
 struct objtool_file {
 	struct elf *elf;
 	struct list_head insn_list;
-	DECLARE_HASHTABLE(insn_hash, 16);
+	DECLARE_HASHTABLE(insn_hash, 20);
 	bool ignore_unreachables, c_file, hints, rodata;
 };
 



  parent reply	other threads:[~2020-03-12 13:52 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-12 13:41 [RFC][PATCH 00/16] objtool: vmlinux.o and noinstr validation Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 01/16] objtool: Introduce validate_return() Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 02/16] objtool: Rename func_for_each_insn() Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 03/16] objtool: Rename func_for_each_insn_all() Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 04/16] objtool: Annotate identity_mapped() Peter Zijlstra
2020-03-13 14:34   ` Peter Zijlstra
2020-03-15 15:45     ` Josh Poimboeuf
2020-03-13 16:46   ` Brian Gerst
2020-03-13 17:22     ` Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 05/16] objtool: Optimize find_symbol_by_index() Peter Zijlstra
2020-03-15 16:09   ` Josh Poimboeuf
2020-03-15 16:18     ` Josh Poimboeuf
2020-03-15 16:10   ` Josh Poimboeuf
2020-03-17 11:55   ` Miroslav Benes
2020-03-17 14:08     ` Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 06/16] objtool: Add a statistics mode Peter Zijlstra
2020-03-15 16:20   ` Josh Poimboeuf
2020-03-12 13:41 ` [RFC][PATCH 07/16] objtool: Optimize find_section_by_index() Peter Zijlstra
2020-03-15 16:24   ` Josh Poimboeuf
2020-03-12 13:41 ` [RFC][PATCH 08/16] Optimize find_section_by_name() Peter Zijlstra
2020-03-15 16:25   ` Josh Poimboeuf
2020-03-17 12:22   ` Miroslav Benes
2020-03-17 14:10     ` Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 09/16] objtool: Optimize find_symbol_*() and read_symbols() Peter Zijlstra
2020-03-15 15:48   ` Josh Poimboeuf
2020-03-15 16:41   ` Josh Poimboeuf
2020-03-12 13:41 ` Peter Zijlstra [this message]
2020-03-12 13:41 ` [RFC][PATCH 11/16] objtool: Optimize find_symbol_by_name() Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 12/16] objtool: Optimize read_sections() Peter Zijlstra
2020-03-15 16:53   ` Josh Poimboeuf
2020-03-12 13:41 ` [RFC][PATCH 13/16] objtool: Delete cleanup() Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 14/16] objtool: Optimize find_rela_by_dest_range() Peter Zijlstra
2020-03-12 13:41 ` [RFC][PATCH 15/16] objtool: Implement noinstr validation Peter Zijlstra
2020-03-15 18:03   ` Josh Poimboeuf
2020-03-16 13:24     ` Peter Zijlstra
2020-03-16 16:19       ` Josh Poimboeuf
2020-03-16 16:21         ` Josh Poimboeuf
2020-03-16 16:46           ` Peter Zijlstra
2020-03-16 16:48         ` Peter Zijlstra
2020-03-16 19:20           ` Josh Poimboeuf
2020-03-12 13:41 ` [RFC][PATCH 16/16] objtool: Optimize !vmlinux.o again Peter Zijlstra
2020-03-12 21:57   ` [RFC][PATCH v2 " Peter Zijlstra
2020-03-12 16:23 ` [RFC][PATCH 00/16] objtool: vmlinux.o and noinstr validation Peter Zijlstra
2020-03-12 17:44   ` Josh Poimboeuf
2020-03-12 22:23   ` Peter Zijlstra
2020-03-17  0:56   ` Masami Hiramatsu
2020-03-17  9:26     ` Thomas Gleixner
2020-03-17 14:20       ` Masami Hiramatsu
2020-03-17 12:14     ` Peter Zijlstra
2020-03-15 18:12 ` Josh Poimboeuf

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=20200312135041.994956104@infradead.org \
    --to=peterz@infradead.org \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).