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>