Dave, One question.
On Tue, Oct 04, 2016 at 11:00:16AM -0400, Dave Anderson wrote: > > > ----- Original Message ----- > > If some module has been inserted, crash util complains about > > module symbols: > > ... > > please wait... (gathering module symbol data) > > crash: store_module_symbols_v2: total: 15 mcnt: 16 > > and end up with stopping. > > > > This patch excludes mapping symbols, like $d and $x, as arm does. On arm64, when KASLR is enabled, a function call between a module and the kernel will be done via a veneer (PLT) if the displacement is more than +/-128MB. So disassembled code looks a bit useless: ===8<=== crash> mod -S MODULE NAME SIZE OBJECT FILE ffff04d78f4b8000 testmod 16384 /opt/buildroot/15.11_64/root/kexec/testmod.ko crash> bt PID: 1102 TASK: ffffb4da8e910000 CPU: 0 COMMAND: "insmod" #0 [ffffb4da8e9afa30] __crash_kexec at ffff0e0045020a54 #1 [ffffb4da8e9afb90] panic at ffff0e004505523c #2 [ffffb4da8e9afc50] testmod_init at ffff04d78f4b6014 [testmod] #3 [ffffb4da8e9afb40] do_one_initcall at ffff0e0044f7333c --- <Exception in user> --- PC: 0000000a LR: 00000000 SP: ffff04d78f4b6000 PSTATE: 7669726420656c75 X12: ffffb4da8e9ac000 X11: ffff04d78f4b6018 X10: ffffb4da8e9afc50 X9: 20676e6973756143 X8: 00000000 X7: ffff0e0045e5ce00 X6: ffff0e0045e5c000 X5: 600001c5 X4: ffff0e0045020a58 X3: ffffb4da8e9afa30 X2: ffff0e004502098c X1: ffffb4da8e9afa30 X0: 00000124 crash> dis testmod_init 0xffff04d78f4b6000 <init_module>: stp x29, x30, [sp,#-16]! 0xffff04d78f4b6004 <testmod_init+4>: mov x29, sp 0xffff04d78f4b6008 <testmod_init+8>: ldr x0, 0xffff04d78f4b6018 0xffff04d78f4b600c <testmod_init+12>: bl 0xffff04d78f4b6090 0xffff04d78f4b6010 <testmod_init+16>: ldr x0, 0xffff04d78f4b6020 0xffff04d78f4b6014 <testmod_init+20>: bl 0xffff04d78f4b6080 => branch to a veneer crash> dis 0xffff04d78f4b6080 4 0xffff04d78f4b6080 <testmod_exit+88>: mov x16, #0xffffffffffff5120 // #-44768 0xffff04d78f4b6084 <testmod_exit+92>: movk x16, #0x4505, lsl #16 0xffff04d78f4b6088 <testmod_exit+96>: movk x16, #0xe00, lsl #32 0xffff04d78f4b608c <testmod_exit+100>: br x16 => branch to 0xffff0e0045055120 (= panic()) ===>8=== Is there any method to resolve such kind of indirect addressing to a symbolic name at dis command? (It may be difficult to discriminate PLT from normal branches, though). Thanks, -Takahiro AKASHI > > Signed-off-by: AKASHI Takahiro <takahiro.aka...@linaro.org> > > Queued for crash-7.1.6: > > > https://github.com/crash-utility/crash/commit/9a5cbfe998060a8f99997b1e463353abcfcf1fce > > Thanks, > Dave > > > > --- > > symbols.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/symbols.c b/symbols.c > > index 99c8b8b..a657ead 100644 > > --- a/symbols.c > > +++ b/symbols.c > > @@ -2251,10 +2251,11 @@ store_module_kallsyms_v2(struct load_module *lm, int > > start, int curr, > > continue; > > > > /* > > - * On ARM we have linker mapping symbols like '$a' and '$d'. > > + * On ARM/ARM64 we have linker mapping symbols like '$a' > > + * or '$x' for ARM64, and '$d'. > > * Make sure that these don't end up into our symbol list. > > */ > > - if (machine_type("ARM") && > > + if ((machine_type("ARM") || machine_type("ARM64")) && > > !machdep->verify_symbol(nameptr, ec->st_value, ec->st_info)) > > continue; > > > > -- > > 2.10.0 > > > > -- > > Crash-utility mailing list > > Crash-utility@redhat.com > > https://www.redhat.com/mailman/listinfo/crash-utility > > > > -- > Crash-utility mailing list > Crash-utility@redhat.com > https://www.redhat.com/mailman/listinfo/crash-utility -- Crash-utility mailing list Crash-utility@redhat.com https://www.redhat.com/mailman/listinfo/crash-utility