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

Re: [PATCH v4 02/47] x86/tsc: Add a standalone helpers for getting TSC info from CPUID.0x15



On Fri, May 29, 2026 at 07:43:49AM -0700, Sean Christopherson wrote:
> +static int cpuid_get_tsc_info(struct cpuid_tsc_info *info)
> +{
> +     unsigned int ecx_hz, edx;
> +
> +     memset(info, 0, sizeof(*info));

Let's not clear this unnecessarily...

> +
> +     if (boot_cpu_data.cpuid_level < CPUID_LEAF_TSC)
> +             return -ENOENT;

... just to return here...

> +
> +     /* CPUID 15H TSC/Crystal ratio, plus optionally Crystal Hz */
> +     cpuid(CPUID_LEAF_TSC, &info->denominator, &info->numerator, &ecx_hz, 
> &edx);
> +
> +     if (!info->denominator || !info->numerator)
> +             return -ENOENT;

... or here.

We wanna clear it here, when we'll return success.

> +
> +     /*
> +      * Note, some CPUs provide the multiplier information, but not the core

        Note: some CPUs...

> +      * crystal frequency.  The multiplier information is still useful for
> +      * such CPUs, as the crystal frequency can be gleaned from CPUID.0x16.
> +      */
> +     info->crystal_khz = ecx_hz / 1000;
> +     return 0;
> +}
> +
> +int __init cpuid_get_tsc_freq(struct cpuid_tsc_info *info)
> +{
> +     if (cpuid_get_tsc_info(info) || !info->crystal_khz)
> +             return -ENOENT;
> +
> +     info->tsc_khz = info->crystal_khz * info->numerator / info->denominator;
> +     return 0;
> +}

Unused here. Add it with its first user pls.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette



 


Rackspace

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