Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Oct 2007 03:48:51 +0300
From:      Mihai =?utf-8?q?Don=C8=9Bu?= <mihai.dontu@gmail.com>
To:        Jung-uk Kim <jkim@freebsd.org>
Cc:        freebsd-emulation@freebsd.org, freebsd-questions@freebsd.org
Subject:   Re: amd64_set_gsbase()
Message-ID:  <200710090348.52036.mihai.dontu@gmail.com>
In-Reply-To: <200710081841.35968.jkim@FreeBSD.org>
References:  <200710082135.58099.mihai.dontu@gmail.com> <200710090100.58577.mihai.dontu@gmail.com> <200710081841.35968.jkim@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 09 October 2007, Jung-uk Kim wrote:
> In long mode, we don't really care about segment registers.  While 
> implementing TLS for Linuxulator, I had to do the following hack, for 
> example:
> 
> http://docs.freebsd.org/cgi/mid.cgi?200703300006.l2U06LA1075891
> 
> Under Linux and Windows, they do preserve segment registers vs. base 
> addresses mapping for backward compatibility, AFAIK with some 
> performance penalty.

Ah! But you are doing your magic _in the kernel_. I don't have this luxury :)
I have to do everything in user space (as a normal user) on an out-of-the-box
FreeBSD (-stable).

I have *one* more question: maybe I don't fully understand the hole BASE thing,
but since the FreeBSD kernel does not preserve %gs and %fs, what is the purpose
of amd64_set_XXbase()?

Thanks,

-- 
Mihai Donțu



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