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

[Xen-ia64-devel] code in vms_fault.c


  • To: Xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Tristan Gingold <tgingold@xxxxxxx>
  • Date: Sat, 1 Sep 2007 07:58:13 +0200
  • Delivery-date: Fri, 31 Aug 2007 22:52:59 -0700
  • List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>

Hi,

in vms_fault.c:leave_hypervisor_tail():

        if (v->vcpu_id == 0) {
            unsigned long callback_irq =
                d->arch.hvm_domain.params[HVM_PARAM_CALLBACK_IRQ];

            if ( v->arch.arch_vmx.pal_init_pending ) {
                /*inject INIT interruption to guest pal*/
                v->arch.arch_vmx.pal_init_pending = 0;
                deliver_pal_init(v);
                return;
            }

            /*
             * val[63:56] == 1: val[55:0] is a delivery PCI INTx line:
             *                  Domain = val[47:32], Bus  = val[31:16],
             *                  DevFn  = val[15: 8], IntX = val[ 1: 0]
             * val[63:56] == 0: val[55:0] is a delivery as GSI
             */
            if (callback_irq != 0 && local_events_need_delivery()) {
                /* change level for para-device callback irq */
                /* use level irq to send discrete event */

My question is why the local_event check is conditionned by v->vcpu_id == 0 ?

Thanks in advance,
Tristan.

_______________________________________________
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®.