Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Jul 2002 18:47:13 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        julian@FreeBSD.org
Cc:        peter@FreeBSD.org, current@FreeBSD.org
Subject:   Thread state
Message-ID:  <XFMail.20020711184713.jhb@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
Currently, sparc64 SMP panics before getting out of single user mode
because there is an optimization case in cpu_switch() (if we are
switching back to the same thread, we just return right away) that
doesn't set td_state to TDS_RUNNING.  Also, according to Peter, the
code in ia64's cpu_switch() doesn't work either.  Rather than try to
fix this in the assembler though, I think it is easier to just set
the thread state once in C at the end of choosethread().  It is a
lot easier to maintain down the road.  The patch to do this is at
http://www.freebsd.org/~jhb/patches/kse_switch.patch

It has been tested on sparc64, alpha, and i386 all with SMP.  I
would like to commit it soonish.  Comments?

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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