|
|
|
|
|
|
|
|
|
|
xen-tools
Re: [Xen-tools] Re: xenbus block device support
On 13 Aug 2005, at 10:56, Rusty Russell wrote:
You are the second person from Cambridge to query this; strange that I
thought it obvious.
The Unix experience with EINTR has shown, dramatically and repeatedly,
that these kind of spurious failures make for unreliable systems. It's
a shockingly bad API, at best a 7 on the Hard to Misuse scale.
There are times when we must, reluctantly, admit failure and sacrifice
the beauty of others' code upon the rock of our requirements. This is
not one of those times.
Even if we don't have EAGAIN, xenstore users have to be prepared that
work they do based on transactions they have just completed may be
invalidated by other system components. For example, a frontend driver
may have to connect to a new backend arbitrarily soon after it has
connected through to the old one, because of a driver restart.
Support for this kind of 'shifting sands' has to be a fundamental part
of the design for things like xenbus and xend, or the system can never
be properly reliable. And once you have that, I see little difference
between redoing work because a transaction failed vs. redoing work
because a watch fired.
Maybe this is something we can leave for now. Specifying roots up front
seems a bit weird to me, but I guess you do generally know what area of
the store you will be working in, and you can always default to '/'.
:-) And xenbus can be robustified for EAGAIN later, if someone
implements an OCC version of xenstore.
-- Keir
_______________________________________________
Xen-tools mailing list
Xen-tools@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-tools
|
|
|
|
|