Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Aug 2003 06:25:09 +0800
From:      David Xu <davidxu@FreeBSD.org>
To:        Julian Elischer <julian@elischer.org>, Marcel Moolenaar <marcel@xcllnt.net>
Cc:        threads@FreeBSD.org
Subject:   Re: Good news: KSE on ia64 is starting to work
Message-ID:  <200308060625.09817.davidxu@FreeBSD.org>
In-Reply-To: <Pine.BSF.4.21.0308051013210.82100-100000@InterJet.elischer.org>
References:  <Pine.BSF.4.21.0308051013210.82100-100000@InterJet.elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 06 August 2003 01:22, Julian Elischer wrote:
> On Tue, 5 Aug 2003, Marcel Moolenaar wrote:
> > Ok,
> >
> > I have a couple of changes and fixes in my tree that makes KSE on
> > ia64 work. I have a couple of questions before I can commit it:
>
> On ia64 the TP will point to the TDB, as the spec says.
>
> there is only one case where this negatively impacts
> libKSE and that is where the thread is setting itself into a critical
> region.
>
> in i386 it is
>
> movl #0, %gs(offset)  (clear a value in the KCB)
>
> which can be done atomically
> since on ia64 TP points to teh THREAD structure,
> we have a second method of setting a critical region which is inthe TCB
> instead of being in the KCB, because
>
> using pdp11 syntax,
> offset(TCB)->reg
> NULL -> offset2(reg)
>
> cannot be done atomically and pre-emption may result in teh thread
> switching KSEs between teh two instructions.
> So on ia64 the critical region is defined as being enterred when
> the alternative flag in the TCB is used..
>
> David and Dan have more info and patches
>

I had committed a patch for kernel, the patch introduces a TMF_NOUPCALL
flag which can be used for ia64 and alpha in libkse. I think Dan can
commit his libkse patch now.


David Xu



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