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

Re: [Xen-devel] [PATCH v2] tools: implement initial ramdisk support for ARM.





On 09/04/14 09:37, Ian Campbell wrote:
On Wed, 2014-04-09 at 09:17 +0100, Julien Grall wrote:

On 09/04/14 09:12, Ian Campbell wrote:
This small changes fix boot of the guest with RAM < 128Mb:

diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c
index f051515..2228ba5 100644
--- a/tools/libxc/xc_dom_arm.c
+++ b/tools/libxc/xc_dom_arm.c
@@ -300,7 +300,7 @@ int arch_setup_meminit(struct xc_dom_image *dom)
       if ( ramend >= ram128mb + modsize && kernend < ram128mb )
           modbase = ram128mb;
       else if ( ramend >= kernend + modsize )
-        modbase = kernend;
+        modbase = ramend - modsize;
       else
           return -1;

I guess this is because the kernel is extracting on it. I think we
should follow the same "algorithm" as Xen (see place_modules) to decide
where the modules should be loaded.

Yes, this fix is correct. The existing code is just bogus, it makes no
sense to place the modules exactly at the end of RAM since they will
spin over the end.

I'm not sure to understand why you are talking about RAM... currently
the modules are placed just after the kernel (which in this case is
always before ramend).

I misread the change.

I think the current code matches the dom0 place_modules call (modulo the
condition being expressed differently). Perhaps that case is also wrong?

The 2 if of libxc  express the first if of dom0 place_modules, right?

If dom0 as less than 128MB of RAM, we are trying to load the modules as high as possible.

In case of the guest, we are loading them just after kernel. But ... the kernel will likely decompress on it.

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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