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 08/12] xenpaging: drop paged pages in guest_remov

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] [PATCH 08/12] xenpaging: drop paged pages in guest_remove_page
From: Olaf Hering <olaf@xxxxxxxxx>
Date: Fri, 14 Jan 2011 17:53:07 +0100
Delivery-date: Fri, 14 Jan 2011 08:56:18 -0800
Dkim-signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1295023992; l=1465; s=domk; d=aepfle.de; h=In-Reply-To:Content-Type:MIME-Version:References:Subject:To:From: Date:X-RZG-CLASS-ID:X-RZG-AUTH; bh=htwk10slyyX7Rrvn2k/U15vCIIE=; b=nlBo1/jsdOrfRfLHjAPX/lk70NHubj73vXAs8fL6MSX5ZOaoA/FbAknZVuVHhJcKRnG k1gDsiTvHrftBiOCTmB6xEsYZ7NP/g3yc5okel9UhoG6H68rk+w48YSONnpMMVoRsP0sv PCEYj6X8vW2TLw0NAasPEkiKC0Q55noyfos=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20110110164348.394538387@xxxxxxxxx>
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20110110164345.521919826@xxxxxxxxx> <20110110164348.394538387@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.20 (2009-06-14)
On Mon, Jan 10, Olaf Hering wrote:

> Simply drop paged-pages in guest_remove_page(), and notify xenpaging to
> drop its reference to the gfn. If the ring is full, the page will
> remain in paged-out state in xenpaging. This is not an issue, it just
> means this gfn will not be nominated again.

>  send one-way notification to pager to release page

Here I need some help to make that a true one-way event.

The currently applied version of the patch just fills up the ring, with
the result that the guest can not proceed because there is no way to
tell the pager about required page-in requests.

How can the request which was just consumed with get_response() be freed
from the ring buffer? I tried a modified version of
mem_event_pause_vcpu() which does not call mem_event_pause_vcpu(), but
that does not change anything. It seems the stuck guest is a result of
incorrect mem_event_ring handling.


> +void p2m_mem_paging_drop_page(struct p2m_domain *p2m, unsigned long gfn)
> +{
> +    struct vcpu *v = current;
> +    mem_event_request_t req;
> +    struct domain *d = p2m->domain;
> +
> +    /* Check that there's space on the ring for this request */
> +    if ( mem_event_check_ring(d) == 0)
> +    {
> +        /* Send release notification to pager */
> +        memset(&req, 0, sizeof(req));
> +        req.flags |= MEM_EVENT_FLAG_DROP_PAGE;
> +        req.gfn = gfn;
> +        req.vcpu_id = v->vcpu_id;
> +
> +        mem_event_put_request(d, &req);
> +    }
> +}
> +

Xen-devel mailing list