Messages in this thread | | | Date | Tue, 06 May 2014 18:25:36 +0900 | From | Masami Hiramatsu <> | Subject | Re: [tip:perf/kprobes] kprobes: Introduce NOKPROBE_SYMBOL() macro to maintain kprobes blacklist |
| |
(2014/05/06 5:48), Tony Luck wrote: > This patch is in linux-next ("next-20140505") and I see a > bunch of "Failed to find blacklist" messages when booting > on ia64: > > Failed to find blacklist 0001013168300000 > Failed to find blacklist 0001013000f0a000 > Failed to find blacklist 000101315f70a000 > Failed to find blacklist 000101324c80a000 > Failed to find blacklist 0001013063f0a000 > Failed to find blacklist 000101327800a000 > Failed to find blacklist 0001013277f0a000 > Failed to find blacklist 000101315a70a000 > Failed to find blacklist 0001013277e0a000 > Failed to find blacklist 000101305a20a000 > Failed to find blacklist 0001013277d0a000 > Failed to find blacklist 00010130bdc0a000 > Failed to find blacklist 00010130dc20a000 > Failed to find blacklist 000101309a00a000 > Failed to find blacklist 0001013277c0a000 > Failed to find blacklist 0001013277b0a000 > Failed to find blacklist 0001013277a0a000 > Failed to find blacklist 000101327790a000 > Failed to find blacklist 000101303140a000 > Failed to find blacklist 0001013a3280a000 > > What do these mean?
Ah, I forgot that ia64 has function descriptor :( That means kprobes initial code has failed to get correct entry address of the blacklisted functions.
In include/linux/kprobes.h, I defined NOKPROBE_SYMBOL to store the addresses of blacklisted functions as below,
#define __NOKPROBE_SYMBOL(fname) \ static unsigned long __used \ __attribute__((section("_kprobe_blacklist"))) \ _kbl_addr_##fname = (unsigned long)fname; #define NOKPROBE_SYMBOL(fname) __NOKPROBE_SYMBOL(fname)
_kbl_addr_XX stores the address of the function, but on IA64, it stores the address of function descriptor.
Since those addresses are only used with kallsyms to lookup function size, I think I should use a macro to store correct function address instead of the address of function descriptor on ia64 (and similar arch). But I'm not sure which macro I should use... Is there any good way to get the address of function, instead of function descriptor?
Thank you,
-- Masami HIRAMATSU Software Platform Research Dept. Linux Technology Research Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu.pt@hitachi.com
| |