Date: Tue, 23 Jan 2007 18:12:45 -0500 From: Jung-uk Kim <jkim@FreeBSD.org> To: Tijl Coosemans <tijl@ulyssis.org> Cc: freebsd-emulation@FreeBSD.org Subject: Re: linuxolator: tls_test results amd64 Message-ID: <200701231812.48455.jkim@FreeBSD.org> In-Reply-To: <200701232359.07434.tijl@ulyssis.org> References: <790a9fff0701211041j1176d00gd6dd75d0989cf4ec@mail.gmail.com> <200701232343.47316.tijl@ulyssis.org> <200701232359.07434.tijl@ulyssis.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 23 January 2007 05:59 pm, Tijl Coosemans wrote: > On Tuesday 23 January 2007 23:43, Tijl Coosemans wrote: > > On Tuesday 23 January 2007 21:55, Jung-uk Kim wrote: > > > On Tuesday 23 January 2007 03:13 pm, Tijl Coosemans wrote: > > > > On Tuesday 23 January 2007 20:00, Jung-uk Kim wrote: > > > > > Second problem is MSR_KGSBASE is scrubbed by something > > > > > during context switch, i.e., it becomes 0 some times. > > > > > > Saved pcb_gsbase seems always correct. MSR_KGSBASE is not, > > > which is supposedly swapped with MSR_GSBASE via swapgs. Maybe > > > I am confused, or maybe my CPU is too old (it's C0 stepping and > > > I know there are some segmentation issues with the revision) > > > but that's what I see. I need more time for testing (or > > > resting?). > > > > Ok, I understand why pcb_gsbase is always correct. It is never > > written to except for cpu_set_user_tls, i386_set_gsbase and > > set_thread_area. cpu_switch only reads from it to restore gsbase. > > At least, that's what cpu_switch does in case of 64 bit programs, > > not 32 bit it seems. Why is that? Why is there a jmp on line 186 > > in sys/amd64/amd64/cpu_switch.S? > > This doesn't explain why gsbase becomes 0 by the way. I still think > that's because glibc does "mov index,%gs" after calling > set_thread_area. That's correct. See: http://sourceware.org/cgi-bin/cvsweb.cgi/~checkout~/linuxthreads/linuxthreads/sysdeps/i386/tls.h?rev=1.39&content-type=text/plain&cvsroot=glibc Jung-uk Kim
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200701231812.48455.jkim>