On 15/12/17 02:05, Michael.rosswood wrote:
Hello,
Hello Michael,
I'm trying to understand how Xen and each domain use RAM
on Aarch64 systems.
My understanding is that during Xen startup, Xen will copy
itself to upper physical memory, and continue to run from there,
correct?
Xen will copy itself at the end of the physical memory.
Is there any information on how the heap is handled here
compared to Xen on ARM (e.g. domheap and xenheap)?
On Arm64, domheap and xenheap are the same. This is because all the
physical memory is mapped in the hypervisor.
From http://www.wiki.xilinx.com/Xen+Hypervisor+internals, it looks
like all memory for dom0 is mapped 1:1. Does this mean that dom0
keeps physical memory from address 0 up until dom0_mem?
Because of the lack of IOMMU on some platforms or platform with IOMMU
not protected all DMA-capables device, Xen will allocate Dom0 memory
with guest physical address == host physical address.
Xen will look for space anywhere in the memory and create one or
multiple banks for Dom0. The actual algorithm to find them is quite
horrible. You can look at the description on top of the function
allocate_memory in xen/arch/arm/domain_build.c.
Further below, it mentions that each domU has an artificial memory
map. But I'm not sure what this looks like in memory. Could someone
clarify how this is done?
I am not sure to understand what you mean by "what this looks like in
memory". Could you clarify?
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel