My Windows PV drivers are crashing during hibernation, and I''ve finally figured out that it''s because the windows hibernation mode driver double buffers memory before handing it to my block device driver, and in doing so ''touches'' some pages of memory I have given back to xen (to work around a domu save crash). I assume that this is the same issue that causes touching unpopulated PoD memory to blow up the DomU too. I don''t know if there is a way to mark the pages I gave back to xen as ''gone'' under windows, the best I can do is allocate them to my driver... any suggestions as to how to resolve it from xen? One idea I had was to map the same physical page of memory into the ''holes'' so things at least don''t blow up, but I''m not sure if that is possible or desirable. Thanks James _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Paul Durrant
2011-Jan-21 13:46 UTC
[Xen-devel] RE: touching a missing page causes DomU to die
> -----Original Message----- > From: xen-devel-bounces@lists.xensource.com [mailto:xen-devel- > bounces@lists.xensource.com] On Behalf Of James Harper > Sent: 21 January 2011 12:35 > To: xen-devel@lists.xensource.com > Subject: [Xen-devel] touching a missing page causes DomU to die > > My Windows PV drivers are crashing during hibernation, and I''ve > finally > figured out that it''s because the windows hibernation mode driver > double > buffers memory before handing it to my block device driver, and in > doing > so ''touches'' some pages of memory I have given back to xen (to work > around a domu save crash). >You''ve given memory belonging to the crash kernel back to Xen?> I assume that this is the same issue that causes touching > unpopulated > PoD memory to blow up the DomU too. > > I don''t know if there is a way to mark the pages I gave back to xen > as > ''gone'' under windows, the best I can do is allocate them to my > driver... > any suggestions as to how to resolve it from xen? One idea I had was > to > map the same physical page of memory into the ''holes'' so things at > least > don''t blow up, but I''m not sure if that is possible or desirable. > > Thanks > > James > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
James Harper
2011-Jan-21 21:51 UTC
[Xen-devel] RE: touching a missing page causes DomU to die
> > > > My Windows PV drivers are crashing during hibernation, and I''ve > > finally > > figured out that it''s because the windows hibernation mode driver > > double > > buffers memory before handing it to my block device driver, and in > > doing > > so ''touches'' some pages of memory I have given back to xen (to work > > around a domu save crash). > > > > You''ve given memory belonging to the crash kernel back to Xen? >My driver allocates a few pages of memory and calls decrease reservation to give them back to xen. This is to work around a problem saving (or restoring?) a domu under xen where I need to give back an amount of pages equal to the pages xen has given me for setup (grant table I think). James _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Paul Durrant
2011-Jan-22 16:04 UTC
[Xen-devel] RE: touching a missing page causes DomU to die
James, Then I guess I don''t understand why the double buffering code is attempting to use the memory you have allocated and handed back to Xen. If your code allocated it then nothing else should be trying to use it, right? Paul> -----Original Message----- > From: James Harper [mailto:james.harper@bendigoit.com.au] > Sent: 21 January 2011 21:52 > To: Paul Durrant; xen-devel@lists.xensource.com > Subject: RE: touching a missing page causes DomU to die > > > > > > > My Windows PV drivers are crashing during hibernation, and I''ve > > > finally > > > figured out that it''s because the windows hibernation mode > driver > > > double > > > buffers memory before handing it to my block device driver, and > in > > > doing > > > so ''touches'' some pages of memory I have given back to xen (to > work > > > around a domu save crash). > > > > > > > You''ve given memory belonging to the crash kernel back to Xen? > > > > My driver allocates a few pages of memory and calls decrease > reservation > to give them back to xen. This is to work around a problem saving > (or > restoring?) a domu under xen where I need to give back an amount of > pages equal to the pages xen has given me for setup (grant table I > think). > > James_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
James Harper
2011-Jan-22 22:12 UTC
[Xen-devel] RE: touching a missing page causes DomU to die
> > James, > > Then I guess I don''t understand why the double buffering code isattempting> to use the memory you have allocated and handed back to Xen. If yourcode> allocated it then nothing else should be trying to use it, right? >It''s during hibernation. Windows writes out all memory to disk and turns the power off. It can be read back in when the power comes back on, restoring the system back to its previous state. I''m not sure why you''d use hibernate when xm save exist, but some users want it, and there should be a way to make it work. I think I''ve solved it now by allocating memory for the grant table out of real memory space instead of mmio space, and giving those pages back to xen before putting the grant table pages there. I''ll need another solution if I ever want to support PoD though. James> Paul > > > -----Original Message----- > > From: James Harper [mailto:james.harper@bendigoit.com.au] > > Sent: 21 January 2011 21:52 > > To: Paul Durrant; xen-devel@lists.xensource.com > > Subject: RE: touching a missing page causes DomU to die > > > > > > > > > > My Windows PV drivers are crashing during hibernation, and I''ve > > > > finally > > > > figured out that it''s because the windows hibernation mode > > driver > > > > double > > > > buffers memory before handing it to my block device driver, and > > in > > > > doing > > > > so ''touches'' some pages of memory I have given back to xen (to > > work > > > > around a domu save crash). > > > > > > > > > > You''ve given memory belonging to the crash kernel back to Xen? > > > > > > > My driver allocates a few pages of memory and calls decrease > > reservation > > to give them back to xen. This is to work around a problem saving > > (or > > restoring?) a domu under xen where I need to give back an amount of > > pages equal to the pages xen has given me for setup (grant table I > > think). > > > > James_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel