Re: estX still not attaching properly

From: Eygene Ryabinkin <rea-fbsd_at_codelabs.ru>
Date: Fri, 19 Jun 2009 12:35:41 +0400
Good day.

Thu, Jun 18, 2009 at 06:17:19PM +0400, pluknet wrote:
> 2009/6/18 John Baldwin <jhb_at_freebsd.org>:
> > On Wednesday 17 June 2009 2:29:25 pm Alexander Best wrote:
> >> hi there,
> >>
> >> although i'm running a very recent current which has "ACPICA 20090521", estX
> >> still isn't attaching properly on my machine:
> >>
> >> est0: <Enhanced SpeedStep Frequency Control> on cpu0
> >> est: CPU supports Enhanced Speedstep, but is not recognized.
> >> est: cpu_vendor GenuineIntel, msr 925092506000925
> >> device_attach: est0 attach returned 6
> >> est1: <Enhanced SpeedStep Frequency Control> on cpu1
> >> est: CPU supports Enhanced Speedstep, but is not recognized.
> >> est: cpu_vendor GenuineIntel, msr 925092506000925
> >> device_attach: est1 attach returned 6
> >
> > That just means ACPI isn't providing info about the speed steppings your CPU
> > provides.

True.  Probably update to the latest BIOS will help, but may be it
won't: some vendors aren't putting the stuff to the ACPI tables.

> > It is odd that cpu0 has freq_levels but cpu1 does not.
>
> While here let me also please share my own acpi/est data.
> I hope it would not bother you too much.
> est attaches to all cpu:s, but again freq_levels is only on cpu0.

It is the proper behaviour of the ACPI's cpufreq driver: frequency
levels for all CPUs are meant to be the same.  See sys/kern/kern_cpu.c
(cpufreq_attach(), line 172 or something like this),
-----
        /*
         * Only initialize one set of sysctls for all CPUs.  In the future,
         * if multiple CPUs can have different settings, we can move these
         * sysctls to be under every CPU instead of just the first one.
         */
        numdevs = devclass_get_count(cpufreq_dc);
        if (numdevs > 1)
                return (0);

        CF_DEBUG("initializing one-time data for %s\n",
            device_get_nameunit(dev));
        SYSCTL_ADD_PROC(&sc->sysctl_ctx,
            SYSCTL_CHILDREN(device_get_sysctl_tree(parent)),
            OID_AUTO, "freq", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
            cpufreq_curr_sysctl, "I", "Current CPU frequency");
        SYSCTL_ADD_PROC(&sc->sysctl_ctx,
            SYSCTL_CHILDREN(device_get_sysctl_tree(parent)),
            OID_AUTO, "freq_levels", CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
            cpufreq_levels_sysctl, "A", "CPU frequency levels");
-----
-- 
Eygene
 _                ___       _.--.   #
 \`.|\..----...-'`   `-._.-'_.-'`   #  Remember that it is hard
 /  ' `         ,       __.--'      #  to read the on-line manual
 )/' _/     \   `-_,   /            #  while single-stepping the kernel.
 `-'" `"\_  ,_.-;_.-\_ ',  fsc/as   #
     _.-'_./   {_.'   ; /           #    -- FreeBSD Developers handbook
    {_.-``-'         {_/            #
Received on Fri Jun 19 2009 - 06:35:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:50 UTC