[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] question regarding foreign memory mapping in xen
On Mon, 2013-05-27 at 22:06 +0900, Sengul Thomas wrote: > Hello xen developers :) > > I'm reading source codes of xen and got a question in tool-stack part > and got series of questions: > > In file tools/libxc/xc_linux_osdep.c, function linux_privcmd_map_foreign_bulk, > I notice that mmap and ioctl IOCTL_PRIVCMD_MMAPBATCH_V2, are used > for mapping a foreign memory into dom0. > > Is it because mmap is for mapping from /proc/xen/privcmd to dom0 memory and > ioctl is for mapping from foreign memory (probably domU) into > /proc/xen/privcmd? As far as privcmd is concerned mmap is effectively used as a way to reserve some virtual address in the current process, while the ioctl is used to fill it with memory mapped from a foreign domain. > Also, I am trying to understand how ioctl IOCTL_PRIVCMD_MMAPBATCH_V2 works, > and it is quite hard. > In function privcmd_ioctl_mmap_batch, it allocates pages in dom0 side, > and I don't understand why do we need this allocation. Just to give us a hole where we can then map the domU page, i.e. it just gives us the dom0 internal datastructures, like struct page *. > If we map a page from foreign domain, just changing grant table is not enough? No because as Andrew says grant tables and privileged foreign maps are not the same thing. > Also, I see that in function mmap_batch_fn (i.e., called with the > newly allocated pages), > xen_remap_domain_mfn_range function is called. > Could you tell me what does this function (xen_remap_domain_mfn_range) > do briefly. IIRC it calls a callback function for each PTE involved in mapping the given range of addresses, which we then use to make the foreign mapping. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |