[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xense-devel] Xen memory management
> I am just wondering what does it take (including design modification) to > limit the global access to the whole table. The reason there's a single shared table is that M2P mapping needs to be fast for guests. A table lookup is obviously fast (index by machine address, get a physical address) but requires a lot of space. Maintaining a single table enables the guests to do this fast lookup without requiring a large amount of machine memory to be devoted to per-guest M2P tables. The most straightforward solution would be to maintain a separate table for each guest. This could probably be done without breaking the existing guest ABI. It would be rather more memory intensive, however. In principle, a guest could maintain its own M2P table instead of there being a shared one - Xen wouldn't need to supply it at all. This would still incur a per-guest memory cost, and some extra complexity in the guest. > I think every little action > that limits unnecessary sharing of resources among guest domains will help > achieve multi-level secure Xen that is included in Xen research roadmap. Agreed. It's worth thinking about where things might leak and considering options for plugging / limiting those holes. Cheers, Mark > Thanks, > > Myong > > -----Original Message----- > From: Mark Williamson [mailto:mark.williamson@xxxxxxxxxxxx] > Sent: Thursday, February 16, 2006 9:28 AM > To: xense-devel@xxxxxxxxxxxxxxxxxxx; mkang@xxxxxxxxxxxxxxxx > Subject: Re: [Xense-devel] Xen memory management > > > Xen interface manual describes the following: > > "Xen maintains a globally readable machine-to-physical table which > > records the mapping from machine page frames to pseudo-physical ones." > > > > The questions are: > > What does it mean by "globally readable"? Which hypercall is being used > > to access this table from a guest domain (or is there some other way to > > access > > > this table from a guest domain)? > > It's mapped into a domain's address space. (nb. this is x86 specific). I > can't remember where it's mapped, though... Anyhow, the overhead of a > hypercall isn't necessary to read it, it's just a single memory access. > > The advantage here is that a domain can map a machine address back into a > guest physical address by simply doing a table lookup. This also means it > can see the M2P mappings for all the other domains, but this doesn't really > leak any information since it still can't see the memory contents of other > domains. > > It is, however, a channel by which malicious guests might theoretically > exchange data whilst bypassing security checks. This is only really an > issue > in Mandatory Access Control systems, and even there there are liable to be > many other covert channels too. > > > Is it possible to read memory content of guest domain B (or domain 0) > > from guest domain A? > > No. On x86 you can only read memory if you can map it with the pagetables > (i.e. no direct physical addressing). You can therefore only read the > memory > contents of another domain if you can create a pagetable mapping for that > domain. Xen validates any updates to the pagetables to make sure that they > are safe, so a domain can't create arbitrary mappings to other domains - if > it tries to make an illegal mapping, Xen won't allow the pagetable updates. > > Cheers, > Mark -- Dave: Just a question. What use is a unicyle with no seat? And no pedals! Mark: To answer a question with a question: What use is a skateboard? Dave: Skateboards have wheels. Mark: My wheel has a wheel! _______________________________________________ Xense-devel mailing list Xense-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xense-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |