FAILED: patch "[PATCH] perf symbol: Remove arch__symbols__fixup_end()" failed to apply to 5.10-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From a5d20d42a2f2dc2b2f9e9361912062732414090d Mon Sep 17 00:00:00 2001
From: Namhyung Kim <[email protected]>
Date: Fri, 15 Apr 2022 17:40:48 -0700
Subject: [PATCH] perf symbol: Remove arch__symbols__fixup_end()
Now the generic code can handle kallsyms fixup properly so no need to keep the arch-functions anymore.
Fixes 3cf6a32f3f2a4594 ("perf symbols: Fix symbol size calculation condition")
Signed-off-by Namhyung Kim <[email protected]>
Acked-by Ian Rogers <[email protected]>
Cc Heiko Carstens <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc John Garry <[email protected]>
Cc Leo Yan <[email protected]>
Cc Mark Rutland <[email protected]>
Cc Masami Hiramatsu <[email protected]>
Cc Mathieu Poirier <[email protected]>
Cc Michael Ellerman <[email protected]>
Cc Michael Petlan <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Song Liu <[email protected]>
Cc Will Deacon <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
tools/perf/arch/arm64/util/machine.c +0 -21
@@ -8,27 +8,6 @@#include "callchain.h" #include "record.h" -/* On arm64, kernel text segment starts at high memory address, -* for example 0xffff 0000 8xxx xxxx. Modules start at a low memory -* address, like 0xffff 0000 00ax xxxx. When only small amount of -* memory is used by modules, gap between end of module's text segment -* and start of kernel text segment may reach 2G. -* Therefore do not fill this gap and do not assign it to the kernel dso map. -*/ - -#define SYMBOL_LIMIT (1 << 12)/* 4K */ - -void arch__symbols__fixup_end (struct symbol *p,struct symbol *c) -{ -if ((strchr (p->name,'[' ) &&strchr (c->name,'[' ) ==NULL ) || - (strchr (p->name,'[' ) ==NULL &&strchr (c->name,'[' ))) -/* Limit range of last symbol in module and kernel */ - p->end +=SYMBOL_LIMIT ; -else - p->end = c->start; -pr_debug4 ("%s sym:%s end:%#" PRIx64"\n" , __func__, p->name, p->end); -} -void arch__add_leaf_frame_record_opts (struct record_opts *opts) { opts->sample_user_regs |= sample_reg_masks[PERF_REG_ARM64_LR ].mask;
tools/perf/arch/powerpc/util/Build +0 -1
@@ -1,5 +1,4 @@ perf-y += header.o -perf-y += machine.o perf-y += kvm-stat.o perf-y += perf_regs.o perf-y += mem-events.o
tools/perf/arch/powerpc/util/machine.c deleted +0 -25
@@ -1,25 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 - -#include <inttypes.h> -#include <stdio.h> -#include <string.h> -#include <internal/lib.h> // page_size -#include "debug.h" -#include "symbol.h" - -/* On powerpc kernel text segment start at memory addresses, 0xc000000000000000 -* whereas the modules are located at very high memory addresses, -* for example 0xc00800000xxxxxxx. The gap between end of kernel text segment -* and beginning of first module's text segment is very high. -* Therefore do not fill this gap and do not assign it to the kernel dso map. -*/ - -void arch__symbols__fixup_end (struct symbol *p,struct symbol *c) -{ -if (strchr (p->name,'[' ) ==NULL &&strchr (c->name,'[' )) -/* Limit the range of last kernel symbol */ - p->end += page_size; -else - p->end = c->start; -pr_debug4 ("%s sym:%s end:%#" PRIx64"\n" , __func__, p->name, p->end); -}
tools/perf/arch/s390/util/machine.c +0 -16
@@ -35,19 +35,3 @@ int arch__fix_module_text_start(u64 *start, u64 *size, const char *name)return 0 ; } - -/* On s390 kernel text segment start is located at very low memory addresses, -* for example 0x10000. Modules are located at very high memory addresses, -* for example 0x3ff xxxx xxxx. The gap between end of kernel text segment -* and beginning of first module's text segment is very big. -* Therefore do not fill this gap and do not assign it to the kernel dso map. -*/ -void arch__symbols__fixup_end (struct symbol *p,struct symbol *c) -{ -if (strchr (p->name,'[' ) ==NULL &&strchr (c->name,'[' )) -/* Last kernel symbol mapped to end of page */ - p->end =roundup (p->end, page_size); -else - p->end = c->start; -pr_debug4 ("%s sym:%s end:%#" PRIx64"\n" , __func__, p->name, p->end); -}
tools/perf/util/symbol.c +0 -5
@@ -101,11 +101,6 @@ static int prefix_underscores_count(const char *str)return tail - str; } -void __weak arch__symbols__fixup_end (struct symbol *p,struct symbol *c) -{ - p->end = c->start; -} -const char *__weak arch__normalize_symbol_name (const char *name) {return name;
tools/perf/util/symbol.h +0 -1
@@ -241,7 +241,6 @@ const char *arch__normalize_symbol_name(const char *name);#define SYMBOL_A 0#define SYMBOL_B 1 -void arch__symbols__fixup_end (struct symbol *p,struct symbol *c);int arch__compare_symbol_names (const char *namea,const char *nameb);int arch__compare_symbol_names_n (const char *namea,const char *nameb,unsigned int n);