Date: Mon, 7 Jan 2002 15:24:34 +0100 From: Bernd Walter <ticso@cicely8.cicely.de> To: Terry Lambert <tlambert2@mindspring.com> Cc: Jake Burkholder <jake@locore.ca>, Alfred Perlstein <bright@mu.org>, Dan Eischen <eischen@vigrid.com>, arch@FreeBSD.ORG Subject: Re: Request for review: getcontext, setcontext, etc Message-ID: <20020107152434.B19289@cicely8.cicely.de> In-Reply-To: <3C396554.9B6A9053@mindspring.com> References: <3C37E559.B011DF29@vigrid.com> <20020106032709.A82406@elvis.mu.org> <3C381B48.AADDCA2B@mindspring.com> <20020106113847.A15885@cicely8.cicely.de> <20020107015228.E39321@locore.ca> <3C396554.9B6A9053@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 07, 2002 at 01:07:32AM -0800, Terry Lambert wrote: > The "flushw" is not enough. > > The following paper discusses the original implementation of the > "liblwp" code on SunOS 4.x: > > http://www.cs.washington.edu/research/compiler/papers.d/thread-regwin.html It's uses a flushw emulation, because it had to deal with CPUs which don't have a flushw instruction. Well in fact it's wrong from the 1991 standpoint to name this emulation, because I asume sparcv9 wasn't there, but the result is the same. > The basic problem is that stack is cached in registers, not flushed > to RAM, and you may be resuming on another processor while another > one still hasn't written the register caches back so that the > memory image you load on the new processor is valid. flushw does window exceptions until only the last is in CPU. It wasn't available when the documents you pointed where written. -- B.Walter COSMO-Project http://www.cosmo-project.de ticso@cicely.de Usergroup info@cosmo-project.de To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020107152434.B19289>