[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 11/28] x86/vvtd: Process interrupt remapping request
On Sun, Feb 11, 2018 at 01:31:41PM +0800, Chao Gao wrote: > On Fri, Feb 09, 2018 at 05:44:17PM +0000, Roger Pau Monné wrote: > >On Fri, Nov 17, 2017 at 02:22:18PM +0800, Chao Gao wrote: > >> +static int vvtd_delivery(struct domain *d, uint8_t vector, > >> + uint32_t dest, bool dest_mode, > >> + uint8_t delivery_mode, uint8_t trig_mode) > >> +{ > >> + struct vlapic *target; > >> + struct vcpu *v; > >> + > >> + switch ( delivery_mode ) > >> + { > >> + case dest_LowestPrio: > >> + target = vlapic_lowest_prio(d, NULL, 0, dest, dest_mode); > >> + if ( target != NULL ) > >> + { > >> + vvtd_debug("d%d: dest=v%d dlm=%x vector=%d trig_mode=%d\n", > >> + vlapic_domain(target)->domain_id, > >> + vlapic_vcpu(target)->vcpu_id, > >> + delivery_mode, vector, trig_mode); > >> + vlapic_set_irq(target, vector, trig_mode); > >> + break; > >> + } > >> + vvtd_debug("d%d: null round robin: vector=%02x\n", > >> + d->domain_id, vector); > >> + break; > >> + > >> + case dest_Fixed: > >> + for_each_vcpu ( d, v ) > >> + if ( vlapic_match_dest(vcpu_vlapic(v), NULL, 0, dest, > >> dest_mode) ) > >> + { > >> + vvtd_debug("d%d: dest=v%d dlm=%x vector=%d > >> trig_mode=%d\n", > >> + v->domain->domain_id, v->vcpu_id, > >> + delivery_mode, vector, trig_mode); > >> + vlapic_set_irq(vcpu_vlapic(v), vector, trig_mode); > >> + } > >> + break; > >> + > >> + case dest_NMI: > >> + for_each_vcpu ( d, v ) > >> + if ( vlapic_match_dest(vcpu_vlapic(v), NULL, 0, dest, > >> dest_mode) && > >> + !test_and_set_bool(v->nmi_pending) ) > >> + vcpu_kick(v); > > > >Doing this loops here seems quite bad from a preformance PoV, > >specially taking into account that this code is going to be used with > >> 128 vCPUs. > > Maybe. But i prefer to not do optimization at this early stage. I agree with not doing optimizations for first pass implementations, but given this series is focused on increasing the number of vCPUs in order to get better performance adding loops bounded to the number of vCPUs seems quite incoherent. There are several of those in the vlapic code for example, so I'm wondering whether a preparatory patch should deal with those, or at least have a plan. I would like to at least see a 'TODO' tag here describing how to deal with this in the future, so that the maximum allowed number of vCPUs for HVM domain is not bumped until those TODOs are taken care of. Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |