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

Re: [Xen-users] ARM: Xen on Vexpress

On 06/11/2014 04:10 PM, Ian Campbell wrote:
> On Wed, 2014-06-11 at 16:02 +0100, Jeenu Viswambharan wrote:
>>>> Xen is now launching DOM0. But next issue I'm now facing is that
>>>> Linux refusing to run when loaded at 0xa0008000 - it panics and
>>>> complains about failing to allocate memory in
>>>> mm/memblock.c:memblock_alloc_base().  FWIW, I've built the kernel
>>>> v3.14 with vexpress_defconfig and enabled Xen and highmem support.
>>>> The kernel however is happy to boot when loaded at 0x80008000
>>>> (without Xen). The same with Xen though, the kernel reports
>>>> 'uncompression error'.
>>>> It's little to do with Xen, but are there any other options required
>>>> to be enabled in the DOM0 Kernel to run from 0xa0008000?
>>> Your kernel needs to be relocatable. I'm not 100% which option that is
>>> (perhaps CONFIG_ARM_PATCH_PHYS_VIRT) but if you build a multiplatform
>>> kernel (CONFIG_ARCH_MULTIPLATFORM) it certainly will be.
>> Just found out that both of the configs are enabled in my build, and
>> I've no idea what's going on.
>> Like I said, when loaded at 0xa0008000, the kernel didn't boot neither
>> on bare metal nor Xen. But at 0x80008000, the kernel was happy to boot
>> bare metal but not with Xen. Does Xen care where the kernel is, as long
>> as the kernel is happy to execute from wherever it's loaded?
> The kernel wants to be loaded within 128M of the start of RAM. Does
> 0xa0008000 meet that? What is loading the kernel there -- I don't think
> Xen will (it knows about the 128MB thing). How much RAM does your
> vexpress have? Is 0xa0008000 even in RAM on a vexpress? I thought it had
> up to 1GB at 0x60000000-0xa0000000.

The versatile express memory range starts at 0x8000000. So the address
gave by Jeenu looks ok to me.

> And just to be clear we are talking about the load address of the kernel
> within the dom0 IPA space, aren't we? Not the host address where the
> kernel is loaded to be passed to Xen (it doesn't matter what that is
> really).

I remembered to had a similar issue on the Arndale a while a go. Linux
is unable to allocate memory because either:
        1) Linux is considering your memory is part of highmem
        2) virt-phys is again bogus?

I think we can safely ignore the latter one as Xen 4.4 has a workaround
to avoid it (see commit 6c21cb3 which as been revered on upstream).

For the former one, Linux is checking the memory in sanity_check_meminfo
(arch/arm/mm/mmu.c). You might want to check if you have in your log
message such as "Ignoring RAM"/"Truncating RAM".


Julien Grall

Xen-users mailing list



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