Re: [PATCH 19/27] perf tools: Introduce regs_query_register_offset() for x86

From: Wangnan (F)
Date: Mon Sep 14 2015 - 21:37:04 EST




On 2015/9/15 5:37, Arnaldo Carvalho de Melo wrote:
Em Sun, Sep 06, 2015 at 07:13:35AM +0000, Wang Nan escreveu:
regs_query_register_offset() is a helper function which converts
register name like "%rax" to offset of a register in 'struct pt_regs',
which is required by BPF prologue generator. Since the function is
identical, try to reuse the code in arch/x86/kernel/ptrace.c.

Comment inside dwarf-regs.c list the differences between this
implementation and kernel code.

get_arch_regstr() switches to regoffset_table and the old string table
is dropped.
Trying to cherry pick this one, but found this problem, trying to fix by
adding the prototype somewhere...


[acme@zoo linux]$ m
make: Entering directory '/home/git/linux/tools/perf'
BUILD: Doing 'make -j4' parallel build
CC /tmp/build/perf/arch/x86/util/dwarf-regs.o
CC /tmp/build/perf/arch/x86/util/intel-pt.o
arch/x86/util/dwarf-regs.c:122:5: error: no previous prototype for
âregs_query_register_offsetâ [-Werror=missing-prototypes]
int regs_query_register_offset(const char *name)
^
cc1: all warnings being treated as errors
/home/git/linux/tools/build/Makefile.build:70: recipe for target
'/tmp/build/perf/arch/x86/util/dwarf-regs.o' failed
make[5]: *** [/tmp/build/perf/arch/x86/util/dwarf-regs.o] Error 1

This patch depends on patch 18/27: "perf tools: Add BPF_PROLOGUE
config options for further patches" because I wanted to first create
the infrastructure then add regs_qurey_register_offset() arch by arch.

I think split 18/27 into two patch should be better. First one adds
HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET, let the second one consider bpf prologue.

Thanks.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/