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

Re: [Xen-users] Dom0 bootup fail on ARM : Unable to allocate first memory bank



On Thu, 2015-09-03 at 11:29 +0000, Tom Ting[äéå] wrote:
> Hi All
>  
> I am currently working on bringing Xen(latest mainline 4.6 RC) alive on 
> an ARM Cortex-A53 platform with 512 MB RAM.
> Xen is complaining about it couldn't allocate 128 MB from DOM0 and 
> stopped.
> I tried to use pagealloc_info() to dump memory status, finding there's 
> only small amount of memory in HEAP.
> Does any one know what is going on or where to check for this problem??
> Really appreciate for your help.

With 4.6 RC you should have ended up with 32MB of Xenheap and the rest of
free memory in domheap, which ought to be plenty for a 128M dom0 really.

> (XEN) Checking for initrd in /chosen
> (XEN) RAM: 0000000000000000 - 000000001ffe0fff
> (XEN)
> (XEN) MODULE[0]: 0000000001ff2000 - 0000000001ff3000 Device Tree
> (XEN) MODULE[1]: 0000000003000000 - 0000000003600000 Kernel earlyprintk 
> console=ttyS0,115200 cma=16m@64m
> (XEN) RESVD[0]: 0000000001ff2000 - 0000000001ff3000
> (XEN)
> (XEN) Command line: console=ttyS0,115200 earlyprintk loglevel=4

Aside: Those look like Linux kernel options, not Xen hypervisor options.

> (XEN) Placing Xen at 0x000000001fc00000-0x000000001fe00000
> (XEN) Update BOOTMOD_XEN from 0000000000200000-0000000000302d81 => 
> 000000001fc00000-000000001fd02d81
> (XEN) Domain heap initialised
> (XEN) Physical memory information:
> (XEN) Xen heap: 0kB free
> (XEN) heap[01]: 8kB free
> (XEN) heap[02]: 8kB free
> (XEN) heap[03]: 16kB free
> (XEN) heap[04]: 32kB free
> (XEN) heap[05]: 64kB free
> (XEN) heap[06]: 128kB free
> (XEN) heap[07]: 256kB free
> (XEN) heap[08]: 512kB free
> (XEN) heap[09]: 1024kB free
> (XEN) heap[10]: 2048kB free
> (XEN) heap[11]: 4096kB free
> (XEN) heap[12]: 8192kB free
> (XEN) heap[13]: 16328kB free
> (XEN) Dom heap: 32712kB free

This is not as much RAM as expected I think, it only sums to ~64M. I wonder
where the rest has gone!

Inferring from the logs your memory layout seems to be:

RAM:    0000000000000000 - 000000001ffe0fff 511M
 - Free 0000000000000000 - 0000000000200000 2M
 - Xen  0000000000200000 - 0000000000302d81 1.01M       (initial
placement)
 - DTB  0000000001ff2000 - 0000000001ff3000 4K
 - Free 0000000001ff3000 - 000000001fc00000 476M
 - Xen  000000001fc00000 - 000000001fd02d81 1.01M       (relocated)

So there is a pretty big 476M free area there. Why is it not in the heaps
then I wonder!

Probably the next step would be to instrument xen/arch/arm/setup.c:setup_mm
(the 64 bit one, there's an #ifdef), to log which regions it is adding as
heap and why it is rejecting those which it isn't adding...

I think you are using u-boot? Please could you "fdt chosen ; fdt print
/chosen" right before you do the boot. It might also be useful to see your
fdt

> (XEN)
> (XEN) Bad console= option 'ttyS0'
> (XEN) Bad console= option '115200'
> Xen 4.6.0-rc
> (XEN) Xen version 4.6.0-rc (tom_ting@(none)) (aarch64-linux-xgcc (Realtek 
> ASDK64-4.9.3 Build 2180) 4.9.3 20150413 (prerelease)) debug=y Wed Sep 2 
> 20:16:44 CST 2015
> (XEN) Latest ChangeSet: Wed Sep 2 17:15:27 2015 +0800 git:3cad003-dirty

What is commit 3cad003, doesn't appear in my tree? and what are the changes
which added the -dirty? IOW what is your exact code?

Ian.

> (XEN) Processor: 410fd034: "ARM Limited", variant: 0x0, part 0xd03, rev 
> 0x4
> (XEN) 64-bit Execution:
> (XEN) Processor Features: 0000000000002222 0000000000000000
> (XEN) Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
> (XEN) Extensions: FloatingPoint AdvancedSIMD
> (XEN) Debug Features: 0000000010305106 0000000000000000
> (XEN) Auxiliary Features: 0000000000000000 0000000000000000
> (XEN) Memory Model Features: 0000000000001122 0000000000000000
> (XEN) ISA Features: 0000000000010000 0000000000000000
> (XEN) 32-bit Execution:
> (XEN) Processor Features: 00000131:00011011
> (XEN) Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
> (XEN) Extensions: GenericTimer Security
> (XEN) Debug Features: 03010066
> (XEN) Auxiliary Features: 00000000
> (XEN) Memory Model Features: 10201105 40000000 01260000 02102211
> (XEN) ISA Features: 02101110 13112111 21232042 01112131 00011142 00010001
> (XEN) FIXME, temporary WA
> (XEN) Using PSCI-0.2 for SMP bringup
> (XEN) CPU0 has no enable method
> (XEN) cpu0 init failed (hwid 0): -22
> (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 33000 KHz
> (XEN) GICv2 initialization:
> (XEN) gic_dist_addr=00000000ff011000
> (XEN) gic_cpu_addr=00000000ff012000
> (XEN) gic_hyp_addr=00000000ff014000
> (XEN) gic_vcpu_addr=00000000ff016000
> (XEN) gic_maintenance_irq=25
> (XEN) GICv2: 128 lines, 4 cpus, secure (IID 0200143b).
> (XEN) Using scheduler: SMP Credit Scheduler (credit)
> (XEN) Allocated console ring of 16 KiB.
> (XEN) Brought up 1 CPUs
> (XEN) P2M: 40-bit IPA with 40-bit PA
> (XEN) P2M: 3 levels with order-1 root, VTCR 0x80023558
> (XEN) I/O virtualisation disabled
> (XEN) *** LOADING DOMAIN 0 ***
> (XEN) Loading kernel from boot module @ 0000000003000000
> (XEN) Allocating 1:1 mappings totalling 128MB for dom0:
> (XEN) Physical memory information:
> (XEN) Xen heap: 0kB free
> (XEN) heap[01]: 8kB free
> (XEN) heap[02]: 8kB free
> (XEN) heap[03]: 16kB free
> (XEN) heap[04]: 32kB free
> (XEN) heap[05]: 64kB free
> (XEN) heap[06]: 128kB free
> (XEN) heap[07]: 256kB free
> (XEN) heap[08]: 512kB free
> (XEN) heap[09]: 1024kB free
> (XEN) heap[10]: 2048kB free
> (XEN) heap[11]: 4096kB free
> (XEN) heap[12]: 8192kB free
> (XEN) heap[13]: 16016kB free
> (XEN) Dom heap: 32400kB free
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Unable to allocate first memory bank
> (XEN) ****************************************
> (XEN)
> (XEN) Reboot in five seconds...
> _______________________________________________
> Xen-users mailing list
> Xen-users@xxxxxxxxxxxxx
> http://lists.xen.org/xen-users

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

 


Rackspace

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