[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-ia64-devel] RE: Latest status about multiple domains on XEN/IPF


  • To: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
  • From: "Magenheimer, Dan (HP Labs Fort Collins)" <dan.magenheimer@xxxxxx>
  • Date: Mon, 19 Sep 2005 11:59:50 -0700
  • Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Mon, 19 Sep 2005 19:02:26 +0000
  • List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
  • Thread-index: AcW4ZfOzzchRRTCPTFuQnRhZtvFcDwADcXEgAAKwUYAACZFncAAB1poAABrDDSAABg+TcAAau19QAAO834AAEcfo8AAMivGQAA1I17AAsvIwEAAJ/qEA
  • Thread-topic: [Xen-ia64-devel] RE: Latest status about multiple domains on XEN/IPF

> diff -r 55bc6698c889 xen/arch/ia64/xen/vcpu.c
> @@ -631,6 +632,16 @@
>  {
>       UINT64 *p, *q, *r, bits, bitnum, mask, i, vector;
>  
> +     /* Always check pending event, since guest may just ack the
> +      * event injection without handle. Later guest may throw out
> +      * the event itself.
> +      */
> +     if (event_pending(vcpu) && 
> +             !test_bit(vcpu->vcpu_info->arch.evtchn_vector,
> +                     &PSCBX(vcpu, insvc[0])))
> +             test_and_set_bit(vcpu->vcpu_info->arch.evtchn_vector,
> +                     &PSCBX(vcpu, irr[0]));
> +
>       p = &PSCBX(vcpu,irr[3]);
>       /* q = &PSCB(vcpu,delivery_mask[3]); */
>       r = &PSCBX(vcpu,insvc[3]);

Why is the line that sets the irr bit calling
test_and_set_bit() rather than just set_bit()?
Even better, why not call vcpu_pend_interrupt()
which also sets the pending_interruption flag?

Also, why does the irr bit get set only if insvc is
not set?  Isn't it possible to pend one interrupt
while another is in-service?

Thanks,
Dan

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.