WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: xen/ia64 and elilo relocation

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