[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 06/10] x86/SVM: Add vcpu scheduling support for AVIC
>>> On 07.05.18 at 23:07, <Janakarajan.Natarajan@xxxxxxx> wrote: > @@ -65,6 +66,51 @@ avic_get_physical_id_entry(struct svm_domain *d, unsigned > int index) > return &d->avic_physical_id_table[index]; > } > > +static void avic_vcpu_load(struct vcpu *v) > +{ > + struct arch_svm_struct *s = &v->arch.hvm_svm; > + int h_phy_apic_id; APIC IDs are of unsigned type. > + ASSERT(!test_bit(_VPF_blocked, &v->pause_flags)); > + > + /* > + * Note: APIC ID = 0xff is used for broadcast. > + * APIC ID > 0xff is reserved. > + */ > + h_phy_apic_id = cpu_data[v->processor].apicid; > + ASSERT(h_phy_apic_id < AVIC_PHY_APIC_ID_MAX); > + > + s->avic_last_phy_id->host_phy_apic_id = h_phy_apic_id; > + smp_wmb(); > + set_bit(IS_RUNNING_BIT, (u64*)(s->avic_last_phy_id)); You have a struct defined for this - please avoid such bogus casting. I can see why you may not want to use the bitfield here - make the struct a union with a "raw" field, define IS_RUNNING_BIT right there (so one can easily see the correlation; may require renaming the constant), and do the operation on &s->raw. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |