I've tested it against the dumpfile that you made available.
Thank you for your help, and to Paolo for the patch.
Dave
----- "Gui Jianfeng" <guijianfeng(a)cn.fujitsu.com> wrote:
Gui Jianfeng wrote:
> Dave Anderson wrote:
>> ----- "Gui Jianfeng" <guijianfeng(a)cn.fujitsu.com> wrote:
>>
>>> Dave Anderson wrote:
>>>> ----- "Dave Anderson" <anderson(a)redhat.com> wrote:
>>>>
>>>>> ----- "Paolo Bonzini" <pbonzini(a)redhat.com> wrote:
>>>>>
>>>>>>> According to coredump, seems crash crashed at
get_idt_base().
>>>>>>> device_find_instance() fails to find "cpu"
instance.
>>>>>> I think Dave already has a patch for this.
>>>>>>
>>>>>> Paolo
>>>>> The patch for get_idt_base() was put in crash version 5.0.4.
>>>>> Looking back at the mail archives, though, I don't see what
>>>>> version Gui is/was using?
>>>>>
>>>>> Dave
>>>> Now I see with the crash debug output that Gui is using version
>>>> 5.0.3. Can you please retry Paolo's patch on top of version
>>>> 5.0.4?
>>>>
>>> Hi Dave,
>>>
>>> I did apply Paolo's patch on top of version 5.0.4, the bug is
still there.
>>> I checked the 5.0.4 changelog and didn't see the fix for this.
>> Sorry, the 5.0.4 fix I was referring to was in get_kernel_base(),
which is
>> called with the result from get_idt_base(). So, just to be clear,
when it
>> crashes in get_idt_base(), it's because device_find_instance() call
returns
>> a NULL?
>
> That's true.
>
>> static uint64_t
>> get_idt_base(struct qemu_device_list *dl)
>> {
>> struct qemu_device_x86 *dx86 = (struct qemu_device_x86
*)
>> device_find_instance (dl, "cpu", 0);
>>
>> return dx86->idt.base;
>> }
>>
>> So, it seems that with Paolo's patch, it can find the "block"
device, but
>> then can no longer find the "cpu" device?
>
> Yes.
>
>> Can you make a vmlinux/vmcore pair available for me to download?
>
> Ok, will do later.
Hi Dave,
Please use the following link to download the vmlinux/vmcore
http://dl.dropbox.com/u/4918988/core.dump
http://dl.dropbox.com/u/4918988/f12_vmlinux