Hi, I just got started using Xen. Is there any mechanism in Xen which allows pages shared across multiple domains? I was reading documents regarding grant tables but one limitation it states, is that a page using this mechanism can only be shared between two domains and only one of them has control over pages at anytime. I was looking for something where any domain has access to this shared memory and can be accessed by any domain in read only mode. Any help if its possible to do with Xen and where can I look for information is appreciated. TIA Siva _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
There are a number of routes for this. The most obvious is to implement content-based page sharing mechanisms for the hypervisor itself - I believe people are working on this already. This is what VMware ESX does when running multiple guests, and can unify storage for pages when they have the same content. Another approach is to use a shared interdomain ramdisk and do Execute In Place (XIP) on the contents. It''s not a full shared page cache, but it gives you sharing for program text, etc. I''m implementing infrastructure to support the dcssblk driver used on IBM zSeries mainframes, which will give us this functionality. The most invasive approach is to implement a Xen-aware filesystem - I''m working on this too. XenFS and the DCSS work require similar infrastructure (including an enhanced version of grant tables, and more functionality in the Xenstore to support more complicated "device" sharing relationships) so the two efforts are symbiotic. The port of the dcssblk driver is less sophisticated and will likely be available substantially sooner. HTH, Mark On Tuesday 24 January 2006 07:38, Amit Patel wrote:> Hi, > > I just got started using Xen. Is there any mechanism in Xen which > allows pages shared across multiple domains? I was reading documents > regarding grant tables but one limitation it states, is that a page > using this mechanism can only be shared between two domains and only > one of them has control over pages at anytime. I was looking for > something where any domain has access to this shared memory and can be > accessed by any domain in read only mode. Any help if its possible to > do with Xen and where can I look for information is appreciated. > > > TIA > > Siva > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel-- 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! _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Mark, Thanks for quick response. As you mentioned some of the efforts are underway. If I want to contirbute how do I get more information? Is there specific people working on this or if I can help with testing out this stuff. TIA, Siva On 1/24/06, Mark Williamson <mark.williamson@cl.cam.ac.uk> wrote:> There are a number of routes for this. The most obvious is to implement > content-based page sharing mechanisms for the hypervisor itself - I believe > people are working on this already. This is what VMware ESX does when > running multiple guests, and can unify storage for pages when they have the > same content. > > Another approach is to use a shared interdomain ramdisk and do Execute In > Place (XIP) on the contents. It''s not a full shared page cache, but it gives > you sharing for program text, etc. I''m implementing infrastructure to > support the dcssblk driver used on IBM zSeries mainframes, which will give us > this functionality. > > The most invasive approach is to implement a Xen-aware filesystem - I''m > working on this too. XenFS and the DCSS work require similar infrastructure > (including an enhanced version of grant tables, and more functionality in the > Xenstore to support more complicated "device" sharing relationships) so the > two efforts are symbiotic. The port of the dcssblk driver is less > sophisticated and will likely be available substantially sooner. > > HTH, > Mark > > On Tuesday 24 January 2006 07:38, Amit Patel wrote: > > Hi, > > > > I just got started using Xen. Is there any mechanism in Xen which > > allows pages shared across multiple domains? I was reading documents > > regarding grant tables but one limitation it states, is that a page > > using this mechanism can only be shared between two domains and only > > one of them has control over pages at anytime. I was looking for > > something where any domain has access to this shared memory and can be > > accessed by any domain in read only mode. Any help if its possible to > > do with Xen and where can I look for information is appreciated. > > > > > > TIA > > > > Siva > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xensource.com > > http://lists.xensource.com/xen-devel > > -- > 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! >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 1/24/06, Mark Williamson <mark.williamson@cl.cam.ac.uk> wrote:> There are a number of routes for this. The most obvious is to implement > content-based page sharing mechanisms for the hypervisor itself - I believe > people are working on this already. This is what VMware ESX does when > running multiple guests, and can unify storage for pages when they have the > same content. > > Another approach is to use a shared interdomain ramdisk and do Execute In > Place (XIP) on the contents. It''s not a full shared page cache, but it gives > you sharing for program text, etc. I''m implementing infrastructure to > support the dcssblk driver used on IBM zSeries mainframes, which will give us > this functionality.Would it make sense to have a Read-Only page type in Xen (if it''s not already there), so that pages coming from the blockdev-backend could be made RO by the backend, and the domain would have to CoW them if it needed to modify the contents? Seems this would allow a shared buffer cache, and also open the door to a voluntary page sharing mechanism. Jacob _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
> > Another approach is to use a shared interdomain ramdisk and > do Execute > > In Place (XIP) on the contents. It''s not a full shared page cache, > > but it gives you sharing for program text, etc. I''m implementing > > infrastructure to support the dcssblk driver used on IBM zSeries > > mainframes, which will give us this functionality. > > Would it make sense to have a Read-Only page type in Xen (if > it''s not already there), so that pages coming from the > blockdev-backend could be made RO by the backend, and the > domain would have to CoW them if it needed to modify the contents?Xen is certainly able to enforce pages as RO, and there have been several prototypes knocked up over the last couple years that exhibit this kind of functionality. For PV guests its necessary to introduce a new kind of page fault that requires them to copy-to-write (i.e. they must replace the imutable ''physical'' page with one of their own and update all references). This is exactly the same kind of OS extension that''s required by embedded folk to execute from flash memory (copy into SRAM on writes), so should hopefully make it into mainstream linux at some point. Ian> Seems this would allow a shared buffer cache, and also open > the door to a voluntary page sharing mechanism._______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel