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] [PATCH] Segments can span multiple clusters with tap:qco

To: Mark McLoughlin <markmc@xxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] Segments can span multiple clusters with tap:qcow
From: Keir Fraser <keir@xxxxxxxxxxxxx>
Date: Thu, 26 Apr 2007 10:09:10 +0100
Delivery-date: Thu, 26 Apr 2007 02:08:00 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <1177533679.28121.5.camel@blaa>
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AceH4ozsy6dcevPVEduFMQAX8io7RQ==
Thread-topic: [Xen-devel] [PATCH] Segments can span multiple clusters with tap:qcow
User-agent: Microsoft-Entourage/
On 25/4/07 21:41, "Mark McLoughlin" <markmc@xxxxxxxxxx> wrote:

> In blktap's qcow we need split up read/write requests if the requests
> span multiple clusters. However, with our MAX_AIO_REQUESTS define we
> assume that there is only ever a single aio request per tapdisk request
> and under heavy i/o we can run out of room causing us to cancel
> requests.
> The attached patch dynamically allocates (based on cluster_bits) the
> various io request queues the driver maintains.

The current code allocates aio-request info for every segment in a request
patch seems to take into account that each segment (part-of-page) can itself
be split into clusters, hence the page_size/cluster_size calculation, but
shouldn't this be multiplied by the existing MAX_AIO_REQUESTS? Otherwise you
provide only enough aio requests for one segment at a time, rather than a
request ring's worth of segments?

 -- Keir

Xen-devel mailing list