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

Re: [Xen-devel] [RFC PATCH 5/9] x86/HVM/SVM: Add AVIC initialization code



>>> On 19.09.16 at 07:52, <suravee.suthikulpanit@xxxxxxx> wrote:
> +int svm_avic_init_vcpu(struct vcpu *v)
> +{
> +    struct vlapic *vlapic = vcpu_vlapic(v);
> +    struct arch_svm_struct *s = &v->arch.hvm_svm;
> +
> +    if ( svm_avic )
> +        s->avic_bk_pg = vlapic->regs_page;

Why this copying? Can't consuming code not use vlapic->regs_page?

> +int svm_avic_init_vmcb(struct vcpu *v)
> +{
> +    paddr_t ma;
> +    u32 apic_id_reg;
> +    struct arch_svm_struct *s = &v->arch.hvm_svm;
> +    struct vmcb_struct *vmcb = s->vmcb;
> +    struct svm_domain *d = &v->domain->arch.hvm_domain.svm;
> +    struct svm_avic_phy_ait_entry entry;
> +
> +    if ( !svm_avic )
> +        return 0;
> +
> +    vmcb->avic_bk_pg_pa = page_to_maddr(s->avic_bk_pg) & AVIC_HPA_MASK;
> +    ma = d->avic_log_ait_mfn;
> +    vmcb->avic_log_apic_id = (ma << PAGE_SHIFT) & AVIC_HPA_MASK;
> +    ma = d->avic_phy_ait_mfn;
> +    vmcb->avic_phy_apic_id = (ma << PAGE_SHIFT) & AVIC_HPA_MASK;
> +    vmcb->avic_phy_apic_id |= AVIC_PHY_APIC_ID_MAX;
> +
> +    dprintk(XENLOG_DEBUG, "SVM: %s: bpa=%#llx, lpa=%#llx, ppa=%#llx\n",
> +           __func__, (unsigned long long)vmcb->avic_bk_pg_pa,
> +           (unsigned long long) vmcb->avic_log_apic_id,
> +           (unsigned long long) vmcb->avic_phy_apic_id);
> +
> +
> +    apic_id_reg = *avic_get_bk_page_entry(v, APIC_ID);
> +    s->avic_phy_id_cache = avic_get_phy_ait_entry(v, apic_id_reg >> 24);
> +    if ( !s->avic_phy_id_cache )
> +        return -EINVAL;
> +
> +    entry = *(s->avic_phy_id_cache);
> +    smp_rmb();
> +    entry.bk_pg_ptr = (vmcb->avic_bk_pg_pa >> 12) & 0xffffffffff;

Please avoid such open coded constants.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.