Skip to content

Commit

Permalink
objtool: Move objtool_file struct off the stack
Browse files Browse the repository at this point in the history
Objtool uses over 512k of stack, thanks to the hash table embedded in
the objtool_file struct.  This causes an unnecessarily large stack
allocation and breaks users with low stack limits.

Move the struct off the stack.

Fixes: 042ba73 ("objtool: Add several performance improvements")
Reported-by: Vassili Karpov <moosotc@gmail.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/df92dcbc4b84b02ffa252f46876df125fb56e2d7.1552954176.git.jpoimboe@redhat.com
  • Loading branch information
Josh Poimboeuf authored and Thomas Gleixner committed Mar 21, 2019
1 parent 9e98c67 commit 0c67181
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion tools/objtool/check.c
Original file line number Diff line number Diff line change
Expand Up @@ -2184,9 +2184,10 @@ static void cleanup(struct objtool_file *file)
elf_close(file->elf);
}

static struct objtool_file file;

int check(const char *_objname, bool orc)
{
struct objtool_file file;
int ret, warnings = 0;

objname = _objname;
Expand Down

0 comments on commit 0c67181

Please sign in to comment.