|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 1/7] x86: detect and initialize Cache QoS Monitoring feature
>>> On 05.12.13 at 10:38, Dongxiao Xu <dongxiao.xu@xxxxxxxxx> wrote:
> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -230,6 +230,12 @@ static void __devinit init_intel(struct cpuinfo_x86 *c)
> ( c->cpuid_level >= 0x00000006 ) &&
> ( cpuid_eax(0x00000006) & (1u<<2) ) )
> set_bit(X86_FEATURE_ARAT, c->x86_capability);
> +
> + /* Check platform QoS monitoring capability */
> + if ((c->cpuid_level >= 0x00000007) &&
> + (cpuid_ebx(0x00000007) & (1u<<12)))
> + set_bit(X86_FEATURE_QOSM, c->x86_capability);
> +
This is redundant with generic_identify() setting the respective
c->x86_capability[] element.
> +struct pqos_cqm *cqm;
__read_mostly?
> +
> +static void __init init_cqm(void)
> +{
> + unsigned int rmid;
> + unsigned int eax, edx;
> +
> + if ( !opt_cqm_max_rmid )
> + return;
> +
> + cqm = xzalloc(struct pqos_cqm);
> + if ( !cqm )
> + return;
> +
> + cpuid_count(0xf, 1, &eax, &cqm->upscaling_factor, &cqm->max_rmid, &edx);
> + if ( !(edx & QOS_MONITOR_EVTID_L3) )
> + {
> + xfree(cqm);
"cqm" is a global variable and - afaict - the only way for other
entities to tell whether the functionality is enabled. Hence shouldn't
you clear the variable here (and similarly further down)? Otherwise
the variable should perhaps be static.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |