Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Oct 2006 13:02:34 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Andrea Bittau <a.bittau@cs.ucl.ac.uk>
Cc:        freebsd-acpi@freebsd.org, freebsd-mobile@freebsd.org
Subject:   Re: hack for getting suspend/resume to half work on an IBM Thinkpad x60s [SMP]
Message-ID:  <200610031302.34835.jhb@freebsd.org>
In-Reply-To: <20061002223055.GA8217@shorty.sorbonet.org>
References:  <20060921000628.GA1832@shorty.sorbonet.org> <200610021424.18562.jhb@freebsd.org> <20061002223055.GA8217@shorty.sorbonet.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 02 October 2006 18:30, Andrea Bittau wrote:
> > resuming the darn things.  Do you know what mode the CPUs come back up in?  
> > It looks like we need to resend startup IPIs to them from your patch.
> 
> Yea it all comes back in real mode.  I've tried using the standard 
freebsd "boot
> code" for waking up the second CPU.  There were some issues with the BSP not
> using PTD_Idle.  I don't know enough about computers and freebsd to know 
what
> exactly that means.  Also, when the second CPU came back, if it entered the
> scheduler, it would die, so I had to leave it in the idle loop by setting 
the
> cpu_hlt mask.
> 
> Anyway, the correct way to do it I think is to generalize the save state &
> wakeup code used by the BSP in acpi_sleep_machdep().  That is, the second 
core
> should save its state and wake up the same way as the BSP does.  It should 
not
> use the "come to life mechanism" used at boot-time.  The reason is that the
> memory is setup properly and the second core should have saved registers 
which
> make sense so less "initialization and setup" needs to be performed.

No, the CPUs are going to come back into real mode, so we will need to 
bootstrap them back into the kernel, etc.  Once you've done that you can make 
sure of stoppcbs[] (assuming you use stop_cpus to shut them down) to restore 
enough state to get them back into the threads they were in when the suspend 
happened.

-- 
John Baldwin



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