On Fri, Oct 08, 2010 at 09:31:02AM -0400, Dave Anderson wrote: > I don't think that this is associated with KVM, but rather the kernel > version used. It should be pretty easy to debug on your end, because it > boils down to these initializations at the top of x86_64_per_cpu_init() > > irq_sp = per_cpu_symbol_search("per_cpu__irq_stack_union"); > cpu_sp = per_cpu_symbol_search("per_cpu__cpu_number"); > > If it's a UP kernel, and if "irq_sp" does not get set, then isize would > be left uninitialized. It's a uniprocessor amd64 kernel. Neither irq_sp nor cpu_sp get set. I have crash> sym irq_stack_union ffffffff81a1c000 (D) irq_stack_union crash> sym cpu_number symbol not found: cpu_number It's not accepted by per_cpu_symbol_search() because its type is not 'V' and because it's not between __per_cpu_start and __per_cpu_end. __per_cpu_start and __per_cpu_end are the same; I don't know if there's something wrong with that. (gdb) b x86_64_per_cpu_init Breakpoint 1 at 0x4eb49c: file x86_64.c, line 823. (gdb) r [...] Breakpoint 1, x86_64_per_cpu_init () at x86_64.c:823 823 ms = machdep->machspec; (gdb) n 825 irq_sp = per_cpu_symbol_search("per_cpu__irq_stack_union"); (gdb) s per_cpu_symbol_search (symbol=0x8a46d7 "per_cpu__irq_stack_union") at symbols.c:4106 4106 if (STRNEQ(symbol, "per_cpu__")) { (gdb) n 4107 if ((sp = symbol_search(symbol))) (gdb) 4109 new = symbol + strlen("per_cpu__"); (gdb) 4110 if ((sp = symbol_search(new))) { (gdb) print new $1 = 0x8a46e0 "irq_stack_union" (gdb) n 4111 if ((sp->type == 'V') || (gdb) l 4106 if (STRNEQ(symbol, "per_cpu__")) { 4107 if ((sp = symbol_search(symbol))) 4108 return sp; 4109 new = symbol + strlen("per_cpu__"); 4110 if ((sp = symbol_search(new))) { 4111 if ((sp->type == 'V') || 4112 ((sp->value >= st->__per_cpu_start) && 4113 (sp->value < st->__per_cpu_end))) 4114 return sp; 4115 } (gdb) print sp->type $2 = 68 'D' (gdb) print sp->value $3 = 18446744071589445632 (gdb) p/x sp->value $4 = 0xffffffff81a1c000 (gdb) p/x st->__per_cpu_start $5 = 0xffffffff81ae7000 (gdb) p/x st->__per_cpu_end $6 = 0xffffffff81ae7000 Sami
Attachment:
signature.asc
Description: Digital signature
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility