Re: hack for getting suspend/resume to half work on an IBM Thinkpad x60s [SMP]

Andrea Bittau <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile,gmane.os.freebsd.devel.acpi
Message-ID <[email protected]>
On Mon, Oct 02, 2006 at 05:29:57PM -0700, Nate Lawson wrote:
> I disagree.  Instead of trying to capture all that register state, 
> including MSRs, MTRRs, etc., it seems easier just to reinitialize from 
> scratch.  We'll need to do that anyway once suspend-to-disk is 
> implemented since that kind of resume is equivalent to a hard power cycle.

OK so what's the protocol?  Force the second CPU into the idle loop, boot it up,
and let the scheduler decide what it should run?  I tried doing that.  It sort
of works but the system seemed unstable [page faults] when interrupts were
handled by the second core, or some processes were run.  One thing I noted is
that the CR3 was different from what it was previously.  On wakeup, it's
idle_ptd and i'm not sure what that means and if that's ok.

Also, I don't see how reinitializing from scratch is "easier".  You'd have to
setup all registers anyway.  Furthermore, you'd have to allocate a stack, the
per-cpu pages and stuff like that which is already in RAM.  [If you use the
existing values then it's not "reinitializing from scratch ;D.]  

Anyway, I don't want to argue because I know really little of this stuff---I
just wanted to give a shot at getting s/r working on my laptop ;D  I got it ~75%
working on my laptop.  Now I'm waiting for someone to point out how to wakeup
the second core properly and why my mechanism [albeit being a hack] doesn't
work.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.