[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8 01/10] xen/arm: observe itargets setting in vgic_enable_irqs and vgic_disable_irqs
Hi Stefano, On 07/10/2014 07:13 PM, Stefano Stabellini wrote: > +/* the rank lock is already taken */ > +static struct vcpu *_vgic_get_target_vcpu(struct vcpu *v, unsigned int irq) > +{ > + unsigned long target; > + struct vcpu *v_target; > + struct vgic_irq_rank *rank = vgic_rank_irq(v, irq); > + ASSERT(spin_is_locked(&rank->lock)); > + > + target = vgic_byte_read(rank->itargets[(irq%32)/4], 0, irq % 4); > + /* 1-N SPI should be delivered as pending to all the vcpus in the > + * mask, but here we just return the first vcpu for simplicity and > + * because it would be too slow to do otherwise. */ > + target = find_first_bit(&target, 8); > + ASSERT(target >= 0 && target < v->domain->max_vcpus); > + v_target = v->domain->vcpu[target]; > + return v_target; > +} > + > +/* takes the rank lock */ > +struct vcpu *vgic_get_target_vcpu(struct vcpu *v, unsigned int irq) > +{ > + struct vcpu *v_target; > + struct vgic_irq_rank *rank = vgic_rank_irq(v, irq); > + > + vgic_lock_rank(v, rank); > + v_target = _vgic_get_target_vcpu(v, irq); > + vgic_unlock_rank(v, rank); > + return v_target; > +} > + itarget is gicv2 specific. GICv3 is using irouter. I don't understand why vijay change the rank structure in a later patch... Those 2 functions should be moved in vgic-v2.c. You may also need to add a callback in the vgic structure. > diff --git a/xen/include/asm-arm/gic.h b/xen/include/asm-arm/gic.h > index a0c07bf..6410280 100644 > --- a/xen/include/asm-arm/gic.h > +++ b/xen/include/asm-arm/gic.h > @@ -320,6 +320,8 @@ struct gic_hw_operations { > > void register_gic_ops(const struct gic_hw_operations *ops); > > +struct vcpu *vgic_get_target_vcpu(struct vcpu *v, unsigned int irq); > + This should be moved in vgic.h. Regards, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |