Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Aug 2019 11:47:07 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Yuri Pankov <yuripv@yuripv.net>, freebsd-hackers@freebsd.org
Subject:   Re: ichsmb(4) and msleep()
Message-ID:  <7f6de96d-8b56-e242-8950-04a20b197bce@selasky.org>
In-Reply-To: <63daa36a-5c22-6b08-3cd7-562fa961ab61@yuripv.net>
References:  <7dfebbd3-85d6-c7b7-b83b-fae8b644649e@yuripv.net> <478965aa-5256-e356-5339-de6fb82c3459@selasky.org> <63daa36a-5c22-6b08-3cd7-562fa961ab61@yuripv.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2019-08-28 11:44, Yuri Pankov wrote:
> Hans Petter Selasky wrote:
>> On 2019-08-28 11:07, Yuri Pankov wrote:
>>> I have a "timed sleep before timers are working" panic in ichsmb_readb()
>>> calling ichsmb_wait() which uses msleep().  That is trying to
>>> jedec_dimm(4) module so it's trying to attach pretty early in boot.
>>> What would be the correct replacement for msleep() here?
>>>
>>
>> If you only need a sleep-delay, pause() is the right one. It handles
>> cold-boot.
> 
> I guess that won't work here as we need to be waked up by interrupt
> handler on command completion, and pause() seems to sleep
> unconditionally for the given time in 'cold' case (if I'm reading the
> code correctly).

If you are too early inside a SYSINIT() path, then you cannot use 
sleeping. You will have to use polling in a loop with a fixed DELAY() to 
know the timeout.

--HPS




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7f6de96d-8b56-e242-8950-04a20b197bce>