Jacob Gorm Hansen
2004-Mar-22 11:36 UTC
[Xen-devel] Forwarding page faults from within Xen
hi, in my work on live-migration I often need to write-protect domain pages. Until now, I have taken special care of pages which Xen needs to write, for instance current->thread.esp0, and page tables mapping network buffers, as otherwise Xen will just kill my domain upon write fault. This is becoming a bit of a hassle, so I am wondering if it would be possible for Xen to simply forward page faults to the faulting domain (microkernel style) instead of killing it? I am probably going to try and implement this myself, unless someone can tell me why this is a horrible idea. Jacob ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
> hi, > > in my work on live-migration I often need to write-protect domain pages. > Until now, I have taken special care of pages which Xen needs to write, > for instance current->thread.esp0, and page tables mapping network > buffers, as otherwise Xen will just kill my domain upon write fault. > This is becoming a bit of a hassle, so I am wondering if it would be > possible for Xen to simply forward page faults to the faulting domain > (microkernel style) instead of killing it? > > I am probably going to try and implement this myself, unless someone can > tell me why this is a horrible idea.Well, you need *some* way of executing and informing the domain to tell it about the fault. So there has to be *some* pinned always-accessible memory to be able to do this. If you get rid of this constraint on the guest-OS stack, then you''ll still need some other memory buffer to store fault info -- there has to be some back stop. So I don''t think you save yourself any pain. As for network buffers, how would we present the fault to the guest OS? The neatest answer to all this that I can see is to use shadow page tables and use this to get Xen to log pages as they are dirtied. Anything which involves the guest OS itself receiving ''page faults'' for events which occurred under its feet just sounds hideous to me! :-) -- Keir ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Jacob Gorm Hansen
2004-Mar-22 12:01 UTC
Re: [Xen-devel] Forwarding page faults from within Xen
On Mon, 2004-03-22 at 12:51, Keir Fraser wrote:> > hi, > >> Well, you need *some* way of executing and informing the domain to > tell it about the fault. So there has to be *some* pinned > always-accessible memory to be able to do this. If you get rid of this > constraint on the guest-OS stack, then you''ll still need some other > memory buffer to store fault info -- there has to be some back > stop. So I don''t think you save yourself any pain.Hmm, I suppose you are right about that then... I keep forgetting the price all the luxury features of L4 came at.> As for network buffers, how would we present the fault to the guest > OS? The neatest answer to all this that I can see is to use shadow > page tables and use this to get Xen to log pages as they are dirtied. > Anything which involves the guest OS itself receiving ''page faults'' > for events which occurred under its feet just sounds hideous to me! > :-)Actually, my problem is not as much the network buffer pages, put the pagetables pointing to them. Right now I identify these and take care of them specially so that my checkpoint is consistent, but it is a bit unclear to me what happens if I write-protect them. Will Xen kill me, or just silently change the protection bits? Jacob ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel