[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
> 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |