[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] yanked share problem



> >> Could you tell me what happen if the DomU_A crash while DomU_B still
> >> accesses the  memory it is granted? And moreover, how can DomU_A knows
> >> that his friend has just "died"?
> >
> >AFAIK, A will be prevented from being fully destroyed until B drops the
> >reference to that page of memory.  The page will be around as long as B
> > wants it.
> >
> >Cheers,
> >Mark
>
> How about B is waiting for A's notification to end reference, but A crashed
> before sending out notification? One immediate example is the shared ring
> buf between backend and frontend. Backend may not access the shared ring
> buf when A is crashed. But that doesn't mean backend won't access that
> address later since that virtual address is legally allocated from linux
> buddy pool. We need provide a way to notify reference side something going
> abnormally, and let reference side to drop reference and release local
> resource.

So, if the frontend domain crashes but the backend driver is still accessing 
the comms ring?

It won't actually break things if the backend accesses the comms ring for a 
crashed domain, it just won't be able to do sensible IO requests anymore.  In 
the case you describe, the virtual device in the backend would get destroyed, 
since the device would disappear out of Xenstore when the crashed domain is 
destroyed.  This will cause the backend to unmap the granted page, which'll 
then get returned to Xen (allowing the frontend domain to be fully 
destroyed).

> One possible way is to register a grant call back for each driver. When Xen
> detects A crashed, xen notifies registered callback. For example, backend
> can register a callback which check whether any reference on-going. If yes,
> waiting for those reference done. Finally release all references to grant
> entries of crashed domain and also release local resource back to linux and
> exit the driver. After all callbacks are done, Xen then free that machine
> page.

I think you should be able to achieve most of what you want by co-ordinating 
access to the share using Xenstore: you'll need to use the store to set up 
the location of the shared memory anyhow, so you might as well use it to be 
notified of when the other domain goes away?

Does that sound about right?

Cheers,
Mark

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.