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

Re: [Xen-devel] What is machine address?

>I find the words "machine->physical mapping" in Xen's source code.
>What's the "machine address" ? And what's the difference between
>machine address and physical address?

Machine address[*] = address of a piece of RAM (starting at 0 and going
up to the amount of memory you have in your actual machine). 

Physical address = address of a piece of memory used by a guest operating
system (starting at 0 and going up to the amount of memory you have in 
that particular virtual machine). 

Simplified[+] example: your PC has 128Mb of memory. You run 2 virtual 
machines (domain 0 and domain 1) each with 64Mb of memory. 
For the guest OS in domain 0, physical addresses = machine addresses. 
For the guest OS in domain 1, physical address X = machine address 64Mb+X

hope this helps, 



[*] I'm ignoring non RAM machine adresses (e.g. bus addresses) here 
    for simplicitiy. 

[+] in reality (a) Xen takes some memory so no Guest actually has 
    identical machine and physical addresses (b) the mappings aren't
    necessarily as simple as that given above - in general any physical
    page in any guest OS can map to any machine page. This is what the 
    machine-to-phys and phys-to-machine tables are all about. 



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