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

Re: [Xen-devel] Confused about Xen memory management.



On Wednesday 16 February 2005 14:08, Nakajima, Jun wrote:
> There are notions like "guest/pseudo physical" and "machine physical" in
> Xen. Guest physical is basically virtualized physical address space, and
> that's the one the bulk of the guest kernel code looks at. That way many
> assumptions in the kernel are met, thus we can minimize changes to the
> kernel when para-virtualizing. Machine physical is real one (i.e. global
> and unique), and the guest needs to use machine physical especially for
> inter-domain communications or MMU-related hypercalls typically.

BTW, there's a virt_to_machine() macro available for convenience.

Cheers,
Mark

> The macro pfn_to_mfn() converts guest physical PFN to machine PFN.
> So what you need to do is to give the machine address to Xen like:
>
> (pfn_to_mfn(__pa(foo) >> PAGE_SHIFT) << PAGE_SHIFT) + (foo & (PAGE_SIZE
> - 1))
>
> Jun
> -----Original Message-----
> From: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
> [mailto:xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of Rusty
> Russell
> Sent: Tuesday, February 15, 2005 10:22 PM
> To: Xen Mailing List
> Subject: [Xen-devel] Confused about Xen memory management.
>
> OK, so I am implementing a prototype where Linux hands an address into
> Xen, which gets decremented later (ie. when Xen is executing a different
> domain).  It seems that map_domain_mem() is what I want, but how do I
> get the physical address of the variable?  virt_to_phys() in Linux
> doesn't seem to do the trick, nor virt_to_phys() in Xen.
>
> ie, pseudo code:
>
> linux/mydriver.c:
>       static int foo = 1;
>
>       // virt_to_phys(foo) maybe?
>       HYPERVISOR_mytest(&foo);
>
> xen/common/test.c:
>       int mytest(unsigned long addr)
>       {
>               // virt_to_phys(addr) maybe?
>               manip_later->addr = addr;
>               return 0;
>       }
>
>       // Some time later
>       ...
>       int *p = map_domain_mem(manip_later->addr);
>       (*p)++;
>       unmap_domain_mem(p);
>
> Sorry for the stupid question; I hate VM.
> Rusty.


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel


 


Rackspace

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