----- Original Message ----- > At 02/17/2012 10:20 PM, Dave Anderson Wrote: > > > > > > ----- Original Message ----- > >> At 02/17/2012 12:30 AM, Dave Anderson Wrote: > > > >>>> Yes. Even if the guest is linux, it is still impossible to do it. Because > >>>> the guest maybe in the second kernel. > >>>> > >>>> qemu-dump walks all guest's page table and collect virtual address and > >>>> physical address mapping. If the page is not used by guest, the virtual is set > >>>> to 0. I create PT_LOAD according to such mapping. So if the guest linux, > >>>> there may be a PT_LOAD segment that describes __START_KERNEL_map region. > >>>> But the information stored in PT_LOAD maybe for the second. If crash > >>>> uses it, crash will see the second kernel, not the first kernel. > >>> > >>> Just to be clear -- what do you mean by the "second" kernel? Do you > >>> mean that a guest kernel crashed guest, and did a kdump operation, > >>> and that second kdump kernel failed somehow, and now you're trying > >>> to do a "virsh dump" on the kdump kernel? > >> > >> Yes, the second kernel means kdump kernel. If kdump failed, the user can > >> use it to dump the guest's memory. > > > > OK, so will your code present two different "types" of ELF headers? > > I donot understand what do you want to say. > Do you mean there is two ELF headers in qemu-generated vmcore? No. What I want to understand is how x86_64_calc_phys_base() will be able to confidently recognize that an ELF file was qemu-generated, so that it can then do the right thing. And from your description, it sounds like there will be different PT_LOAD descriptors based upon whether it's the first or second kernel. And the difference between the two would be based upon which (if any) of the following statements are true: (1) first kernel -- contains a valid __START_KERNEL_map PT_LOAD segment (2) first kernel -- does *not* contain a __START_KERNEL_map PT_LOAD segment (3) second kernel -- contains an invalid (first kernel) __START_KERNEL_map PT_LOAD segment (4) second kernel -- does *not* contain a __START_KERNEL_map PT_LOAD segment (5) ??? What will differentiate qemu-generated ELF headers from kdump-generated ELF headers? Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility