* 'kexec -l' problem at IA64 SN
@ 2006-11-14 0:57 Jay Lan
2006-11-14 1:11 ` Zou, Nanhai
0 siblings, 1 reply; 2+ messages in thread
From: Jay Lan @ 2006-11-14 0:57 UTC (permalink / raw)
To: linux-ia64
Hi,
I finally got time to work on 'kexec -l' problem at SGI box.
The 'kexec -l' always failed on "Invalid memory segment".
I am using these patches:
kexec-tools-1.101-kdump10.patch
kexec-tools-1.101-ia64-kdump10-efi-boot.patch
clone-ia64_boot_param-kdump10.patch
fix-paddr-vmcore-ELF
kexec-ia64-reset-vga (a special workaround from Nanhai to
handle vga i/o issue)
Note that 'kexec -p' worked fine for me.
It would try to add memory segment 0x4000000 - 0x4997fff,
but failed in valid_memory_range() check.
It was the first segment it tried to load.
The kexec_info struct showed:
(gdb) p *(struct kexec_info *)0x607fffffffa0b338
$2 = {segment = 0x0, nr_segments = 0, entry = 0x0, rhdr = {ei_class = 0,
ei_data = 0, e_type = 0, e_machine = 0, e_version = 0, e_flags = 0,
e_phnum = 0, e_shnum = 0, e_shstrndx = 0, e_entry = 0, e_phoff = 0,
e_shoff = 0, e_notenum = 0, e_phdr = 0x0, e_shdr = 0x0, e_note = 0x0,
rel_addr = 0, rel_size = 0}, backup_start = 0, kexec_flags = 0}
and, the mem_phdr struct showed:
(gdb) p *(struct mem_phdr *) 0x6000000000014e20
$4 = {p_paddr = 67108864, p_vaddr = 11529215050363437056,
p_filesz = 10000768, p_memsz = 10000768, p_offset = 65536,
p_data = 0x2000000000338010 "\004\200", p_type = 1, p_flags = 7,
p_align = 65536}
(gdb)
The 'base' variable in elf_exec_load() at the time of calling
add_segment() was 0.
Where did it go wrong? The phdr->p_paddr? The base? It was off
by 0x3000000000. It needs adjustment, but where in the code and
which value?
The 'kexec -p' worked fine.
Thanks,
- jay
^ permalink raw reply [flat|nested] 2+ messages in thread
* RE: 'kexec -l' problem at IA64 SN
2006-11-14 0:57 'kexec -l' problem at IA64 SN Jay Lan
@ 2006-11-14 1:11 ` Zou, Nanhai
0 siblings, 0 replies; 2+ messages in thread
From: Zou, Nanhai @ 2006-11-14 1:11 UTC (permalink / raw)
To: linux-ia64
> -----Original Message-----
> From: linux-ia64-owner@vger.kernel.org
> [mailto:linux-ia64-owner@vger.kernel.org] On Behalf Of Jay Lan
> Sent: 2006Äê11ÔÂ14ÈÕ 8:57
> To: fastboot
> Cc: Linux-IA64
> Subject: 'kexec -l' problem at IA64 SN
>
> Hi,
>
> I finally got time to work on 'kexec -l' problem at SGI box.
> The 'kexec -l' always failed on "Invalid memory segment".
> I am using these patches:
> kexec-tools-1.101-kdump10.patch
> kexec-tools-1.101-ia64-kdump10-efi-boot.patch
> clone-ia64_boot_param-kdump10.patch
> fix-paddr-vmcore-ELF
> kexec-ia64-reset-vga (a special workaround from Nanhai to
> handle vga i/o issue)
> Note that 'kexec -p' worked fine for me.
>
> It would try to add memory segment 0x4000000 - 0x4997fff,
> but failed in valid_memory_range() check.
>
> It was the first segment it tried to load.
>
> The kexec_info struct showed:
> (gdb) p *(struct kexec_info *)0x607fffffffa0b338
> $2 = {segment = 0x0, nr_segments = 0, entry = 0x0, rhdr = {ei_class = 0,
> ei_data = 0, e_type = 0, e_machine = 0, e_version = 0, e_flags = 0,
> e_phnum = 0, e_shnum = 0, e_shstrndx = 0, e_entry = 0, e_phoff = 0,
> e_shoff = 0, e_notenum = 0, e_phdr = 0x0, e_shdr = 0x0, e_note = 0x0,
> rel_addr = 0, rel_size = 0}, backup_start = 0, kexec_flags = 0}
>
>
> and, the mem_phdr struct showed:
> (gdb) p *(struct mem_phdr *) 0x6000000000014e20
> $4 = {p_paddr = 67108864, p_vaddr = 11529215050363437056,
> p_filesz = 10000768, p_memsz = 10000768, p_offset = 65536,
> p_data = 0x2000000000338010 "\004\200", p_type = 1, p_flags = 7,
> p_align = 65536}
> (gdb)
>
> The 'base' variable in elf_exec_load() at the time of calling
> add_segment() was 0.
>
> Where did it go wrong? The phdr->p_paddr? The base? It was off
> by 0x3000000000. It needs adjustment, but where in the code and
> which value?
>
> The 'kexec -p' worked fine.
>
> Thanks,
> - jay
>
>
>
Hi,
Kexec -l is still using the entry value of vmlinux while kexec -p can float it's loading address according to /proc/iomem.
I will provide a patch to kexec-tools later to fix it.
Thanks
Zou Nan hai
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-11-14 1:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-14 0:57 'kexec -l' problem at IA64 SN Jay Lan
2006-11-14 1:11 ` Zou, Nanhai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox