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] Re: how to handle paged hypercall args?

To: Keir Fraser <keir@xxxxxxx>
Subject: Re: [Xen-devel] Re: how to handle paged hypercall args?
From: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Date: Mon, 15 Nov 2010 10:20:13 +0000
Cc: Patrick, Olaf Hering <olaf@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Colp <pjcolp@xxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxxxx>
Delivery-date: Mon, 15 Nov 2010 02:21:24 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C906B761.9F51%keir@xxxxxxx>
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: <4CE111470200007800022344@xxxxxxxxxxxxxxxxxx> <C906B761.9F51%keir@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.20 (2009-06-14)
At 10:09 +0000 on 15 Nov (1289815777), Keir Fraser wrote:
> On 15/11/2010 09:53, "Jan Beulich" <JBeulich@xxxxxxxxxx> wrote:
> >> Maybe Patrick can comment too, but my recollection of discussing this is
> >> that we would have to propagate failures caused by paging at least as
> >> far as the dom0 kernel, because otherwise a single-vcpu dom0 kernel
> >> could deadlock with its one vcpu stuck in a hypercall (or continually
> >> having it preempted and retried) and the paging binary that would
> >> unstick it never getting scheduled.
> > 
> > How's Dom0 involved here? The hypercall arguments live in
> > guest memory.
> Yes, and you'd never turn on paging for dom0 itself. That would never work!

:) No, the issue is if dom0 (or whichever dom the pager lives in) is
trying an operation on domU's memory that hits a paged-out page
(e.g. qemu or similar is mapping it) with its only vpcu - you can't
just block or spin.  You need to let dom0 schedule the pager process. 

> Changing every user of the guest accessor macros to retry via guest space is
> really not tenable. We'd never get all the bugs out.

Right now, I can't see another way of doing it.  Grants can be handled
by shadowing the guest grant table and pinning granted frames so the
block happens in domU (performance-- but you're already paging, right?)
but what about qemu, xenctx, save/restore...?


Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Xen Platform Team
Citrix Systems UK Ltd.  (Company #02937203, SL9 0BG)

Xen-devel mailing list