This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Re: dom0 bootstrap for xenstore

Keir Fraser wrote:

On 16 Jun 2005, at 09:11, Rusty Russell wrote:

So here's my patch against latest bk, including test program but we have
an issue.  On unmap, I hit the BUG_ON() on mm/rmap.c:482.  Is this some
issue with using xc_map_foreign_range() on non-foreign pages?

Ah, it's not working because xc_map_foreign_range does not raise refcnts on the page being mapped. unmap_range then does the right thing for foreign pages, and things like the local domain's shared_info page which is really a Xen heap page, but will do the wrong thing for ordinary pages out of the local domain's page allocator (like the xenstored page). It will try to tear down rmap, drop refcnts, atc and get itself into a mess.

Isn't it possible to fix xc_map_foreign_range() to do the right thing for
'ordinary' pages?

On XenLinux, /dev/mem and /dev/kmem only work for mapping I/O memory.

Either we need a new interface for mmaping local xenstore page, or we need to hack one of the existing /dev/mem or xc_map_foreign_range ioctl. None of these options is very pleasant. :-( I think simplest would be to extend the gross /proc/xen/privcmd to have a mmap that we can use to mmap xenstore page (maybe make a little more general purpose by turning offset field of mmap into an enumeration, so we can map other useful Xen-specific bits and bobs via it in the future).

OK, if xc_map_foreign_range() isn't fixable I guess we have to do something
like that.


Xen-devel mailing list