[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


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.

> > Note that when an EFI program terminates, the memory is not freed. If we do
> > not cleanly free the memory on load abort, then it is possible that the
> > designated memory address is unavailable.
> elilo.efi didn't exit yet. It dropped me back to the elilo: prompt to 
> let me choose an image. I chose the same image a second time and this 
> time I saw xen getting loaded at a different address.
If you abort from the plain loader, you do a free_kmem() call. As such
the memory should be freed, unless there is something broken in the
alloc.c:free() code.

You could try enabling debug by adding "debug" to your elilo.conf.
Careful, though, as you will get tons of debug printfs.

> > I quickly checked the source code
> > and elilo does not try to relocate unless the option "relocatable " is 
> > specified
> > either globally in elilo.conf or on the Xen image. I also checked the abort
> > case and elilo does free the memory allocated for the kernel, as such you 
> > should
> > be able to retry. 
> Someone suggested that the RHEL4 elilo turns relocation on by default to 
> support SGI boxes. I'm not sure if it does that by adding a relocatable 
> flag to elilo.conf or by changing the code. I checked the SRPM and the 
> fedora cvs and can't find a patch which touches the code.
That would be ok if the free logic works. You would be able to get the
same region of memory.

> > 
> > You can try forcing elilo-3.4/ia64/config.c:ia64_can_relocate() to return 0
> > just to make sure this is not the source of the problem.
> > 
> Yes, I'll check this and let you know

I suggest checking the free() code.

SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.