Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Sep 2005 23:34:07 +0400
From:      Maxim Maximov <mcsi@mcsi.pp.ru>
To:        Nate Lawson <nate@root.org>
Cc:        acpi@freebsd.org
Subject:   Re: Hard hang with powerd
Message-ID:  <433AF02F.2060902@mcsi.pp.ru>
In-Reply-To: <4339EB56.2040503@root.org>
References:  <4330020C.5030302@mcsi.pp.ru> <20050920135958.GA1616@poupinou.org>	<433016F8.903@mcsi.pp.ru> <20050920145932.GB1616@poupinou.org> <4332505A.5050201@mcsi.pp.ru> <4339EB56.2040503@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Nate Lawson wrote:
> Maxim Maximov wrote:
> 
>> Bruno Ducrot wrote:
>>
>>> On Tue, Sep 20, 2005 at 06:04:40PM +0400, Maxim Maximov wrote:
>>>
>>>> Bruno Ducrot wrote:
>>>>
>>>>> The 2 logical CPUs need to set the same MSRs at the same time,
>>>>> but if the second one is forced to be idle, I'm not sure if p4tcc will
>>>>> work fine.
>>>>>
>>>>> Therefore, I'm wondering if this hard hang happens with a SMP kernel
>>>>> and hyperthreading is enabled, or if this happens with a UP kernel.
>>>>
>>>>
>>>> Yes, kernel is SMP one.
>>>>
>>>> # sysctl machdep.hyperthreading_allowed
>>>> machdep.hyperthreading_allowed: 1
>>>>
>>>
>>> It's weird.  Could you please try with a kernel without SMP for
>>> testing purpose?
>>>
>>
>> It's fine. Now I'm running UP kernel with 'powerd -v'
> 
> 
> Maxim, can you try some debugging things to figure out where the hang is 
> happening?  First, add printfs of 1, 2, 3, 4, etc. throughout 
> sys/i386/cpufreq/p4tcc.c in p4tcc_set().  Then recompile the SMP kernel 
> and boot single user (to save an fsck) and change some settings via 
> sysctl dev.cpu.0.freq=xxx until you can get a hang.  See what numbers 
> were printed and where it hung.  It should go through all the numbers 
> twice when there is no hang since we set a value on cpu0 and cpu1.

I did that. I seeded printfs from 1 to 7 throughout the function.

OS dies when making these steps:

1. 751 -> 375
2. 748 -> 374
(from boot to boot, freq numbers always differ on my notebook)

In the first case numbers printed were: 1234567. However, in the second 
hang the numbers printed were: 12345671234567.

> 
> Also, see if you can break to the debugger (ctrl-alt-esc) from console 
> when it is hung.  I'm guessing no.

You're right.

-- 
Maxim Maximov



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?433AF02F.2060902>