Re: notebook freezes

From: Stefan Ehmann <shoesoft_at_gmx.net>
Date: Sat, 31 Mar 2007 11:37:57 +0200
On Sunday 04 March 2007 13:27:48 Bruce Evans wrote:
> On Fri, 2 Mar 2007, Stefan Ehmann wrote:
> > On Thursday 01 March 2007 16:12, Stefan Ehmann wrote:
> >> My few days old -current freezes if I press Fn-F6 (this is the
> >> combination to adjust display brightness) if I've done a suspend/resume
> >> before. Directly after boot it works fine.
> >
> > ...
> > So I did a binary search.
> >
> > src/sys/i386/isa/clock.c r1.231 causes my notebook to freeze.
> >
> > Reverting this change in a CURRENT from today fixes the problem.
> >
> > The notebook is still pingable in this state. I experienced some other
> > random hangs recently but don't know yet if those are related.
>
> Oops.  If suspend/resume clobbers the RTC state (which we already have code
> to restore), then it can clobber the RTC index (which even the restoral
> code assumes is unclobbered).  Try this fix.
>
> %%%
> Index: clock.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/i386/isa/clock.c,v
> retrieving revision 1.234
> diff -u -2 -r1.234 clock.c
> --- clock.c	4 Mar 2007 04:55:19 -0000	1.234
> +++ clock.c	4 Mar 2007 11:58:00 -0000
> _at__at_ -580,4 +582,5 _at__at_
>   	/* Restore all of the RTC's "status" (actually, control) registers. */
>   	/* XXX locking is needed for RTC access. */
> +	rtc_reg = -1;
>   	writertc(RTC_STATUSB, RTCSB_24HR);
>   	writertc(RTC_STATUSA, rtc_statusa);
> %%%

For some odd reason, the problem has returned.

I'm pretty sure that I've built a kernel shortly after your commit and it just 
worked fine. Now the problem persists when I build a kernel with sources from 
that date.

I'm not aware of any big changes I made to my configuration. I checked that 
rtc_restore() gets called.

Either I screwed up something last time or some changes in the userland expose 
a race (I only rebuilt kernel from older sources, not world).

Backing out the changes made in 1.231 still fixes the problem.

Stefan
Received on Sat Mar 31 2007 - 07:38:09 UTC

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