Strange issue after early AP startup

Hans Petter Selasky hps at selasky.org
Mon Jan 16 21:10:52 UTC 2017


On 01/16/17 20:31, John Baldwin wrote:
> On Monday, January 16, 2017 04:51:42 PM Hans Petter Selasky wrote:
>> Hi,
>>
>> When booting I observe an additional 30-second delay after this print:
>>
>>> Timecounters tick every 1.000 msec
>>
>> ~30 second delay and boot continues like normal.
>>
>> Checking "vmstat -i" reveals that some timers have been running loose.
>>
>>> cpu0:timer                         44300        442
>>> cpu1:timer                         40561        404
>>> cpu3:timer                      48462822     483058
>>> cpu2:timer                      48477898     483209
>>
>> Trying to add delays and/or prints around the Timecounters printout
>> makes the issue go away. Any ideas for debugging?
>
> I have generally used KTR tracing to trace what is happening during
> boot to debug EARLY_AP_STARTUP issues.
>

Hi John,

What happens is that getnextcpuevent(0) keeps on returning 
"state->nextcall" which is in the past for CPU #2 and #3 on my box.

In "cpu_new_callout()" there is a check if "bt >= state->nextcall", 
which I suspect is true, so "state->nextcall" never gets set to real 
minimum sbintime.

The attached patch fixes the problem for me, but I'm not 100% sure if it 
is correct.

--HPS
-------------- next part --------------
A non-text attachment was scrubbed...
Name: timer_init_fix.diff
Type: text/x-patch
Size: 416 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20170116/da44c534/attachment.bin>


More information about the freebsd-current mailing list