Re: hwpstate_intel hangs kernel

From: Diane Bruce <db_at_db.net>
Date: Wed, 27 May 2020 15:12:42 -0400
On Wed, May 27, 2020 at 08:25:52PM +0200, Andreas Nilsson wrote:
> On Fri, May 22, 2020 at 1:57 AM Diane Bruce <db_at_db.net> wrote:
> 
> > On Wed, Feb 05, 2020 at 02:45:50PM +0100, Andreas Nilsson wrote:
> >
> > Ok I am going to respond to this old email from February..
> >
> > > Hello,
> > >
> > > I upgraded to a newer version,  git 87d669d3863-c266265, and I do not
> > > experience the random hang anymore. The machine still hangs on boot on
> > > "hwpstate_intel0: <Intel Speed Shift> on cpu0" unless I set
> > > 'hint.hwpstate_intel.0.disabled="1"' in loader.conf.
> > >
> >
> > As a few others know on IRC I ran into exactly this same problem
> > on a brand new Lenovo Carbon. I missed this thread somehow.
> > I also had to bisect the commit. Would it be possible to put
> > a note into UPDATING and default to disabled=1 for now? ;)
> >
> 
> 
> Well, I've been trying to chase this a bit more. But I could sure use some
> help from more experienced kernel developers.
> 
>  debug.hwpstate_verbose="1" in loader.conf, and booting in verbose mode I
> get this:
> 
> pcib0: allocated type 4 (8x3f8-8xaf8) for rid 8 of uart0
> uart0 failed to probe at port 0x3f8 irg 4 on isa0
> pcib0: allocated type 4 (0x2f8-0x2f8) for rid 0 uart1
> uart1 failed to probe at port 0x2f8 irq 3 on isa0
> isa_probe_children: probing PnP devices
> Acpi0sExecute: task queue not started
> cpu0: hwpstate registered
> Acpi0sExecute: task queue not started
> cpu1: hwpstate registered
> Acpi0sExecute; task queue not started
> cpu2: hwpstate registered
> Acpi0sExecute: task queue not started
> cpu3: hwpstate registered
> hwpstate_intel0: <Intel Speed Shift> on cpu0
> hwpstate_intel0: hwpstate_attach1
> hwpstate_intel0: hwpstate_attach2
> hwpstate_intel0: hwpstate_attach3
> 
> where the hwpstate_attachX is some device_printf(dev,"hwpstate_attachX\n");
> I've sprinkled in to try to where it actually fails.
> 
> I'm not sure about if device_printf happens immediately. The modifications
> have been made to the function intel_hwpstate_attach around line 480 in
>  sys/x86/cpufreq/hwpstate_intel.c


In my tests No it does not fail immediately it fails after a few minutes.
Thinking that was a possible bogus setting I have tried this:


+#if 0
        sc->high = IA32_HWP_CAPABILITIES_HIGHEST_PERFORMANCE(caps);
        sc->guaranteed = IA32_HWP_CAPABILITIES_GUARANTEED_PERFORMANCE(caps);
        sc->efficient = IA32_HWP_CAPABILITIES_EFFICIENT_PERFORMANCE(caps);
        sc->low = IA32_HWP_CAPABILITIES_LOWEST_PERFORMANCE(caps);
-
+#else
+       sc->high = IA32_HWP_CAPABILITIES_HIGHEST_PERFORMANCE(caps);
+       sc->guaranteed = IA32_HWP_CAPABILITIES_HIGHEST_PERFORMANCE(caps);
+       sc->efficient = IA32_HWP_CAPABILITIES_HIGHEST_PERFORMANCE(caps);
+       sc->low =  IA32_HWP_CAPABILITIES_HIGHEST_PERFORMANCE(caps);
+#endif

e.g. setting all the steps to the same state.

It still hangs but not immediately. What is confounding the matter is
the Lenovo bios also allows one to set Intel Speed Shift.

I've also been poking at this and reading the fine docs but I also
have other stuff to look at and do. 
. 

> > Yep. I also had to bisect this from what is now some 5 months ago :-(
> >
> > Diane
> > --
> > - db_at_FreeBSD.org db_at_db.net http://www.db.net/~db
> >

-- 
- db_at_FreeBSD.org db_at_db.net http://www.db.net/~db
Received on Wed May 27 2020 - 17:12:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:24 UTC