|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 17/30] xen/x86: setup PVHv2 Dom0 CPUs
On Thu, Oct 06, 2016 at 09:20:07AM -0600, Jan Beulich wrote:
> >>> On 27.09.16 at 17:57, <roger.pau@xxxxxxxxxx> wrote:
> > The logic used to setup the CPUID leaves is extremely simplistic (and
> > probably wrong for hardware different than mine). I'm not sure what's the
> > best way to deal with this, the code that currently sets the CPUID leaves
> > for HVM guests lives in libxc, maybe moving it xen/common would be better?
>
> Yeah, a pre-populated array of leaves certainly won't do.
This is what current HVM guests use, and TBH, I would prefer to don't
diverge from HVM. Would it make sense to leave this as-is, until all this
cpuid stuff is fixed? (IIRC Andrew is still working on this).
> > + rc = arch_set_info_hvm_guest(v, &cpu_ctx);
> > + if ( rc )
> > + {
> > + printk("Unable to setup Dom0 BSP context: %d\n", rc);
> > + return rc;
> > + }
> > + clear_bit(_VPF_down, &v->pause_flags);
>
> Even if it may not matter right away, I think you want to clear this
> flag later, after having completed all setup.
Right, I've now moved the clear_bit to the end of construct_dom0_hvm.
> > + for ( i = 0; i < ARRAY_SIZE(cpuid_leaves); i++ )
> > + {
> > + d->arch.cpuids[i].input[0] = cpuid_leaves[i].index;
> > + d->arch.cpuids[i].input[1] = cpuid_leaves[i].count;
> > + if ( d->arch.cpuids[i].input[1] == XEN_CPUID_INPUT_UNUSED )
> > + cpuid(d->arch.cpuids[i].input[0], &d->arch.cpuids[i].eax,
> > + &d->arch.cpuids[i].ebx, &d->arch.cpuids[i].ecx,
> > + &d->arch.cpuids[i].edx);
> > + else
> > + cpuid_count(d->arch.cpuids[i].input[0],
> > d->arch.cpuids[i].input[1],
> > + &d->arch.cpuids[i].eax, &d->arch.cpuids[i].ebx,
> > + &d->arch.cpuids[i].ecx, &d->arch.cpuids[i].edx);
>
> Why this if/else? It is always fine to use cpuid_count().
Done, now it's cpuid_count.
Roger.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |