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] fooey. no interrupts.

To: ron minnich <rminnich@xxxxxxxx>
Subject: Re: [Xen-devel] fooey. no interrupts.
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Tue, 10 Aug 2004 14:35:08 +0100
Cc: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 10 Aug 2004 14:50:34 +0100
Envelope-to: steven.hand@xxxxxxxxxxxx
In-reply-to: Your message of "Tue, 10 Aug 2004 07:32:21 MDT." <Pine.LNX.4.44.0408100729450.6585-100000@xxxxxxxxxxxxxxxxx>
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
> On Tue, 10 Aug 2004, Keir Fraser wrote:
> > 
> > > >  4. The original value of vcpu_data[0].evtchn_upcall_pending must be 
> > > > zero.
> > > >  5. The value of vcpu_data[0].evtchn_upcall_mask must be zero.
> > > 
> > > OK, this I don't totally see. From the code I posted before, it seems to 
> > > me only the first three conditions matter. 
> > 
> > The first three conditions cause us to decide whether or not to
> > schedule the target domain, sending a cross-cpu interrupt if
> > necessary. The final two are checks just before calling back to the
> > guest OS, just to check whether it is in a position to receive async
> > callbacks. 
> Keir, I don't see that in the code and Christian sent a note that left me 
> thinking it does not work that way. 
> as Christian said, (4) doesn't do anything conditional, it does this:
>         /* The VCPU pending flag must be set /after/ update to 
> evtchn-pend. */
>         s->vcpu_data[0].evtchn_upcall_pending = 1;
>         guest_async_callback(d);
> which looks pretty unconditional to me. Is there something else I'm 
> missing?

No, I'd forgotten how the code worked -- Christian is correct.
evtchn_upcall_pending is set unconditionally on the CPU that is
transmitting the event. evtchn_upcall_mask is only checked immediately
before return to your guest OS to determine whether or not to create
an async callback frame.

 -- Keir

SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
Xen-devel mailing list