Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jul 2003 12:19:43 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/lib/libthr/arch/alpha/alpha _curthread.c
Message-ID:  <20030724191943.GA1028@dhcp01.pn.xcllnt.net>
In-Reply-To: <XFMail.20030724150832.jhb@FreeBSD.org>
References:  <200307240751.h6O7pnsd085577@repoman.freebsd.org> <XFMail.20030724150832.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jul 24, 2003 at 03:08:32PM -0400, John Baldwin wrote:
> 
> On 24-Jul-2003 Marcel Moolenaar wrote:
> > marcel      2003/07/24 00:51:49 PDT
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >     lib/libthr/arch/alpha/alpha _curthread.c 
> >   Log:
> >   Implement _get_curthread and _set_curthread. We use GCCs builtin
> >   function this, which expands to PAL calls (rduniq and wruniq).
> >   This needs adjustment when TLS is implemented.
> 
> This trashes SMP since we use the per-CPU unique value already
> to maintain the per-cpu data pointer.

Writing to the per-CPU unique value is an unprivileged operation.
You cannot possibly use that for in-kernel use without saving and
restoring it on kernel exit/entry. Which is what needs to be done.

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net



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