Date: Tue, 21 Nov 2000 20:58:43 -0800 From: Jake Burkholder <jburkhol@home.com> To: Daniel Eischen <eischen@vigrid.com> Cc: Alfred Perlstein <bright@wintelcom.net>, John Baldwin <jhb@FreeBSD.ORG>, Jonathan Lemon <jlemon@flugsvamp.com>, arch@FreeBSD.ORG Subject: Re: Thread-specific data and KSEs Message-ID: <20001122045843.0C16EBA7A@io.yi.org> In-Reply-To: Message from Daniel Eischen <eischen@vigrid.com> of "Tue, 21 Nov 2000 22:33:50 EST." <Pine.SUN.3.91.1001121222649.28739A-100000@pcnet1.pcnet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Tue, 21 Nov 2000, Alfred Perlstein wrote: > > * Daniel Eischen <eischen@vigrid.com> [001121 19:15] wrote: > > > > > > > > Don't more segment registers cause more overhead for context switches? > > > > > > It's just one more register that has to be saved. I don't > > > think it's going to matter much. > > > > No extra TLB faults/invalidations? Aren't segment registers > > somewhat expensive to load? > > Not according to swtch.s, it's just a movl instruction. I don't > need to use the segment register to address anything. I just > need to load it with a value (an index into a global array > of per-KSE structures). > > If I'm being dense, feel free to smack me (just don't take too > much enjoyment in it). Actually this is probably a reason to use %fs, its already saved and restored on entry and exit to the kernel. These are the user-mode register values, so they get saved on the kernel stack in the system call and trap IDTVEC stubs, cpu_switch deals with the kernel mode register values. And yeah, loading the segment registers is expensive comparatively. > > -- > "Some folks are into open source, but me, I'm into open bar." > -- Spencer F. Katt > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-arch" in the body of the message 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?20001122045843.0C16EBA7A>