Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 May 2004 15:48:19 -0700 (PDT)
From:      Julian Elischer <julian@elischer.org>
To:        Peter Wemm <peter@wemm.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern kern_linker.c
Message-ID:  <Pine.BSF.4.21.0405171547540.27448-100000@InterJet.elischer.org>
In-Reply-To: <200405171517.29528.peter@wemm.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Ha! I'm glad I'm not the only one with such a sick mind !!


On Mon, 17 May 2004, Peter Wemm wrote:

> On Monday 17 May 2004 02:59 pm, Doug Rabson wrote:
> > I've been thinking about that on and off for a while. It would be
> > fairly easy to represent most of struct pcpu using TLS...
> 
> I thought about it a bit too.  One potential landmine is making sure 
> that gcc can be adequately taught to be preemption safe and not cache 
> pointers to the tls area across things like critical_*().  I guess that 
> depends on which model is used though.  User-level threads dont have to 
> worry about this, because if they're preempted, they are still the same 
> thread when they come back.  pcpu isn't like this.
> 
> And to think that I was considering benchmarking a change to do an 
> alpha-style stolen-register for the pcpu pointer on amd64. :-)
> 
> > On Monday 17 May 2004 22:31, Julian Elischer wrote:
> > > which brings up the question of TLS in the kernel :-)
> > >
> > > On Mon, 17 May 2004, Peter Wemm wrote:
> > > > peter       2004/05/17 14:24:40 PDT
> > > >
> > > >   FreeBSD src repository
> > > >
> > > >   Modified files:
> > > >     sys/kern             kern_linker.c
> > > >   Log:
> > > >   Since we go to the trouble of compiling the kobj ops table for
> > > > each class, and cannot handle it going away, add an explicit
> > > > reference to the kobj class inside each linker class.  Without
> > > > this, a class with no modules loaded will sit with an idle
> > > > refcount of 0.  Loading and unloading a module with it causes a
> > > > 0->1->0 transition which frees the ops table and causes
> > > > subsequent loads using that class to explode.  Normally, the
> > > > "kernel" module will remain forever loaded and prevent this
> > > > happening, but if you have more than one linker class active,
> > > > only one owns the "kernel".
> > > >
> > > >   This finishes making modules work for kldload(8) on amd64.
> > > >
> > > >   Revision  Changes    Path
> > > >   1.111     +1 -0      src/sys/kern/kern_linker.c
> 
> -- 
> Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
> "All of this is for nothing if we don't go to the stars" - JMS/B5
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0405171547540.27448-100000>