vmcore file 0 size in x86_64
Eric W. Biederman
ebiederm at xmission.com
Thu Aug 13 16:39:06 EDT 2009
Chandan12 K <chandan12.k at tcs.com> writes:
> Hi,
>
> I checked.. through and fond out that one of the following check condition is
> failing
>
> 516 if (memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0 ||
> 517 (ehdr.e_type != ET_CORE) ||
> 518 !vmcore_elf_check_arch(&ehdr) ||
> 519 ehdr.e_ident[EI_CLASS] != ELFCLASS64 ||
> 520 ehdr.e_ident[EI_VERSION] != EV_CURRENT ||
> 521 ehdr.e_version != EV_CURRENT ||
> 522 ehdr.e_ehsize != sizeof(Elf64_Ehdr) ||
> 523 ehdr.e_phentsize != sizeof(Elf64_Phdr) ||
> 524 ehdr.e_phnum == 0) {
> 525 printk(KERN_WARNING "Warning: Core image elf header is
> not"
> 526 "sane:%ld\n",elfcorehdr_addr);
> 527 return -EINVAL
> 528 }
>
> If I comment this return at line 527, then the code flows through and the
> vmcore is getting generated.
>
> However, I am facing a new issue, my user space is 32 bit and the kernel is 64
> bit. And I want to access the high memory (high_memory - BACK_UP_SIZE) area of
> the previous/primary kernel. Where some log data I had saved. The toral RAM is
> 8GB.
>
> As the 32 bit pointers could not reach there... means simple file operations
> lseek() , read etc are not working.. to access some region around 8GB.
>
> Can you please suggest me some way to reach that memory and read my raw data
> from the user space.
>
> I am able to read the data from kernel space( a simple kernel module via /proc
> interface to transfer the data from kernel to user space using physical address
> of the primary kernel).
Typically in user space that can be solved in a 32bit userspace
with FILE_OFFSET=64 or something like that.
There are 32bit syscalls that accept 64bit offsets to files.
Eric
More information about the kexec
mailing list