This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] problem about changing state to XenbusStateClosed result

To: Ewan Mellor <ewan@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] problem about changing state to XenbusStateClosed resulting in vbd entry removed from xenstore
From: Max Zhen <Max.Zhen@xxxxxxx>
Date: Fri, 19 May 2006 23:37:28 +0800
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Fri, 19 May 2006 08:38:11 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <20060518230034.GE30245@xxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <446CA038.2080009@xxxxxxx> <20060518230034.GE30245@xxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; SunOS i86pc; zh-CN; rv:1.7) Gecko/20050516

+ Is there any other way to flush all the I/O to the disk?
Currently, the only way to flush the I/Os is to change the frontend
state to XenbusStateClosed.
Since changing the state to XenbusStateClosed is a dangerous thing to do
(cause all the vbd interface information to be removed), I cannot just
flush the I/O, while keep the frontend and backend connected.
Could there be any new state or command to do that?

A block-detach should be switching the backend to XenbusStateClosing, which
the frontend will observe, allowing it to flush remaining I/O.  Only when the
frontend is done should it switch to Closed, which will then be seen by the
backend and then the backend can finish up and close itself.

Are you not seeing this?
Yes, I've seen this.
But, the key point is that how to flush the I/O without disconnecting between frontend and backend. It seems to me that I/O flushing is more like a command, say, BLKIF_OP_FLUSH, than changing the driver to various states, especially XenbusStateClosing/Closed.

Any idea?




Xen-devel mailing list