On 2/22/2005 8:50 AM, Stephane Eranian wrote:
Arun,
On Mon, 2005-02-21 at 22:26 -0800, Arun Sharma wrote:
Stephane Eranian wrote:
> elilo loads each block of text/data at the address indicated by the
> paddr of the corresponding program header.
>
> Are you saying that the address is different only when you abort a load?
Yes, that's right. Other missing pieces of info:
- I was using the elilo shipped with a RHEL4 beta
- my elilo.conf:
image=xen
label=xen
initrd=xenlinux
read-only
append="nomca console=ttyS1,57600 root=/dev/sda2"
xenlinux is a large uncompressed binary - so it's easy to hit space to
abort it's loading.
Ok, this means it is using the plain_loader.c. But that should not
really matter.
Murphy's law. Now that I'm trying to debug, I can't reproduce the problem any
more.
Non debug:
startup.nsh> elilo xen
ELILO
Loading xen.....done
Loading initrd xenlinux...initrd.c(line 90):read initrd(xenlinux) failed: 1
ELILO boot: xen
Loading xen...ConvertPages: Incompatible memory types
plain_loader.c(line 292):relocation is disabled, cannot load kernel
Exit status code: Load Error
Debug output is also attached.
One thing I noticed is that if the loading of initrd (xenlinux) fails, the
memory for initrd is freed, but the memory for the main image (xen) is not
freed?
-Arun
elilo -D -vvvvv xen
elilo.c(line 536):Optind=3 optarg=0 argc=4
localfs.c(line 241):size=8
alloc.c(line 110):alloc: allocated 8 bytes @[0x3C933588-0x3C933590]
alloc.c(line 110):alloc: allocated 64 bytes @[0x3C933688-0x3C9336C8]
attached vfat to
Acpi(PNP0A03,1)/Pci(1F|0)/Pci(2|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig6260F069-281B-4B48-85FD-7E1DC80C5DDB)
netfs.c(line 733):size=8
alloc.c(line 110):alloc: allocated 8 bytes @[0x3C933608-0x3C933610]
alloc.c(line 110):alloc: allocated 1304 bytes @[0x3C8D7608-0x3C8D7B20]
attached netfs to Acpi(PNP0A03,0)/Pci(1E|0)/Pci(0|0)/Mac(0007E9D814DA)
fileops.c(line 505):found 2 filesystems
alloc.c(line 110):alloc: allocated 96 bytes @[0x3C933508-0x3C933568]
alloc.c(line 110):alloc: allocated 8 bytes @[0x3C933408-0x3C933410]
alloc.c(line 110):alloc: allocated 136 bytes @[0x3C931E08-0x3C931E90]
fileops.c(line 454):dev000 : vfat :
Acpi(PNP0A03,1)/Pci(1F|0)/Pci(2|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig6260F069-281B-4B48-85FD-7E1DC80C5DDB)
alloc.c(line 165):free: Pool @0x3C933408 size=8
alloc.c(line 110):alloc: allocated 8 bytes @[0x3C933408-0x3C933410]
alloc.c(line 110):alloc: allocated 136 bytes @[0x3C931D08-0x3C931D90]
fileops.c(line 454):dev001 : netfs :
Acpi(PNP0A03,0)/Pci(1E|0)/Pci(0|0)/Mac(0007E9D814DA)
alloc.c(line 165):free: Pool @0x3C933408 size=8
devname scheme: simple
glue_localfs.c(line 91):localfs_default_path=\EFI\redhat\
Default config: elilo.conf
Default_kernel: vmlinux
trying config file elilo.conf
fileops.c(line 261):fops_open(elilo.conf), dev::
fileops.c(line 279):dev:: fullname:elilo.conf: name:elilo.conf: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\elilo.conf
alloc.c(line 110):alloc: allocated 5672 bytes @[0x3C8D4008-0x3C8D5630]
config.c(line 482):must do image on vmlinuz-2.6.9-5.EL
alloc.c(line 110):alloc: allocated 5672 bytes @[0x3C8D2008-0x3C8D3630]
config.c(line 482):must do image on vmlinuz-mcmt
alloc.c(line 110):alloc: allocated 5672 bytes @[0x3C8D0008-0x3C8D1630]
config.c(line 482):must do image on xen
config.c(line 912):done parsing config file
trying chooser simple
trying chooser textmenu
selected chooser simple
Trying FPSWA driver scsi0:\efi\intel firmware\fpswa.efi....starting..failed
(Already started)
config.c(line 1052):label xen: kname=xen options= nomca console=ttyS1,57600
root=/dev/sda2 ro initrd=xenlinux
kernel is 'xen'
arguments are ' nomca console=ttyS1,57600 root=/dev/sda2 ro'
initrd is 'xenlinux'
ELILO
fileops.c(line 261):fops_open(xen), dev::
fileops.c(line 279):dev:: fullname:xen: name:xen: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\xen
fileops.c(line 261):fops_open(xen), dev::
fileops.c(line 279):dev:: fullname:xen: name:xen: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\xen
fileops.c(line 261):fops_open(xen), dev::
fileops.c(line 279):dev:: fullname:xen: name:xen: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\xen
plain_loader.c(line 83):class=2 type=2 data=1 machine=50
Using plain_elf64 loader
fileops.c(line 261):fops_open(xen), dev::
fileops.c(line 279):dev:: fullname:xen: name:xen: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\xen
Loading xen...plain_loader.c(line 83):class=2 type=2 data=1 machine=50
ELF file is little endian
Entry point 0x4008340
4 program headers
30 segment headers
plain_loader.c(line 208):plain_elf64 : phdrs allocate 224 bytes sizeof=56
entsize=56
alloc.c(line 110):alloc: allocated 224 bytes @[0x3C931C08-0x3C931CE8]
plain_loader.c(line 240):Phdr 1 paddr [0x4000000-0x407C000] offset 32768 filesz
507904 memsz=507904 bss_sz=0 p_type=1
plain_loader.c(line 240):Phdr 2 paddr [0x4080000-0x40801E8] offset 540672
filesz 488 memsz=488 bss_sz=0 p_type=1
plain_loader.c(line 240):Phdr 3 paddr [0x4090000-0x4096680] offset 541160
filesz 26240 memsz=78104 bss_sz=51864 p_type=1
plain_loader.c(line 240):Phdr 4 paddr [0x4051228-0x40550C8] offset 365096
filesz 16032 memsz=16032 bss_sz=0 p_type=1879048193
Lowest PhysAddr: 0x4000000
TotalMemSize:667928 bytes (164 pages)
Kernel entry @ 0x4008340
alloc.c(line 142):allocator: allocated 164 pages @0x4000000
Press any key to interrupt
off=288 poffs=32768 size=32480
Header #0
offset 32768
Phys addr 0x4000000
BSS size 0 bytes
skip=32480 offs=32768
|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-
off=540672 poffs=540672 size=0
Header #1
offset 540672
Phys addr 0x4080000
BSS size 0 bytes
skip=0 offs=540672
|
off=541160 poffs=541160 size=0
Header #2
offset 541160
Phys addr 0x4090000
BSS size 51864 bytes
skip=0 offs=541160
|/alloc.c(line 165):free: Pool @0x3C931C08 size=224
..done
kernel loaded in [0x4000000-0x40A4000] entry=0x4008340
fileops.c(line 261):fops_open(xenlinux), dev::
fileops.c(line 279):dev:: fullname:xenlinux: name:xenlinux: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\xenlinux
initrd.c(line 60):initrd_open xenlinux worked
alloc.c(line 142):allocator: allocated 2855 pages @0x3BDA9000
initrd: total_size: 11690707 bytes base: 0x3BDA9000 pages 2855
Loading initrd
xenlinux...|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\initrd.c(line
90):read initrd(xenlinux) failed: 1
alloc.c(line 165):free: Page @0x3BDA9000 size=2855
command list (must be first character):
=:print device list, %:print variable list, &:print paths, ?:help
TAB:print label information
default file path: scsi0:\EFI\redhat\
config file : \EFI\redhat\elilo.conf
ELILO boot: xen
config.c(line 1052):label xen: kname=xen options= nomca console=ttyS1,57600
root=/dev/sda2 ro initrd=xenlinux
kernel is 'xen'
arguments are ' nomca console=ttyS1,57600 root=/dev/sda2 ro'
initrd is 'xenlinux'
fileops.c(line 261):fops_open(xen), dev::
fileops.c(line 279):dev:: fullname:xen: name:xen: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\xen
fileops.c(line 261):fops_open(xen), dev::
fileops.c(line 279):dev:: fullname:xen: name:xen: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\xen
fileops.c(line 261):fops_open(xen), dev::
fileops.c(line 279):dev:: fullname:xen: name:xen: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\xen
plain_loader.c(line 83):class=2 type=2 data=1 machine=50
Using plain_elf64 loader
fileops.c(line 261):fops_open(xen), dev::
fileops.c(line 279):dev:: fullname:xen: name:xen: f=0
localfs.c(line 95):localfs_open on \EFI\redhat\xen
Loading xen...plain_loader.c(line 83):class=2 type=2 data=1 machine=50
ELF file is little endian
Entry point 0x4008340
4 program headers
30 segment headers
plain_loader.c(line 208):plain_elf64 : phdrs allocate 224 bytes sizeof=56
entsize=56
alloc.c(line 110):alloc: allocated 224 bytes @[0x3C931C08-0x3C931CE8]
plain_loader.c(line 240):Phdr 1 paddr [0x4000000-0x407C000] offset 32768 filesz
507904 memsz=507904 bss_sz=0 p_type=1
plain_loader.c(line 240):Phdr 2 paddr [0x4080000-0x40801E8] offset 540672
filesz 488 memsz=488 bss_sz=0 p_type=1
plain_loader.c(line 240):Phdr 3 paddr [0x4090000-0x4096680] offset 541160
filesz 26240 memsz=78104 bss_sz=51864 p_type=1
plain_loader.c(line 240):Phdr 4 paddr [0x4051228-0x40550C8] offset 365096
filesz 16032 memsz=16032 bss_sz=0 p_type=1879048193
Lowest PhysAddr: 0x4000000
TotalMemSize:667928 bytes (164 pages)
Kernel entry @ 0x4008340
ConvertPages: Incompatible memory types
plain_loader.c(line 292):relocation is disabled, cannot load kernel
alloc.c(line 165):free: Pool @0x3C931C08 size=224
alloc.c(line 165):free: Pool @0x3C933508 size=96
uninstalled vfat on
Acpi(PNP0A03,1)/Pci(1F|0)/Pci(2|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig6260F069-281B-4B48-85FD-7E1DC80C5DDB)
alloc.c(line 165):free: Pool @0x3C933688 size=64
alloc.c(line 165):free: Pool @0x3C933588 size=8
uninstalled netfs on Acpi(PNP0A03,0)/Pci(1E|0)/Pci(0|0)/Mac(0007E9D814DA)
alloc.c(line 165):free: Pool @0x3C8D7608 size=1304
alloc.c(line 165):free: Pool @0x3C933608 size=8
alloc.c(line 197):free_all pages @ 0x4000000
alloc.c(line 197):free_all pool @ 0x3C8D0008
alloc.c(line 197):free_all pool @ 0x3C8D2008
alloc.c(line 197):free_all pool @ 0x3C8D4008
alloc.c(line 197):free_all pool @ 0x3C931D08
alloc.c(line 197):free_all pool @ 0x3C931E08
alloc.c(line 197):free_all pool @ 0x3C933708
alloc.c(line 197):free_all pool @ 0x3C933788
alloc.c(line 197):free_all pool @ 0x3C933808
alloc.c(line 197):free_all pool @ 0x3C933888
alloc.c(line 197):free_all pool @ 0x3C933908
alloc.c(line 228):free_kmem before (4000000, 164)
alloc.c(line 234):free_kmem after (0, 0)
Exit status code: Load Error
|