[haiku-commits] Re: BRANCH pdziepak-github.scheduler [b3723fd] src/system/kernel/arch/x86/32 headers/private/kernel/arch/x86/32 src/system/boot/platform/bios_ia32 headers/private/kernel/arch/x86 src/system/kernel/arch/x86/64

  • From: François Revol <revol@xxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 17 Dec 2013 05:57:34 +0100

On 17/12/2013 05:52, François Revol wrote:
> On 17/12/2013 05:45, pdziepak-github.scheduler wrote:
>> added 3 changesets to branch 'refs/remotes/pdziepak-github/scheduler'
>> old head: b2cd1dba1e8df965e967fc185921375c2fed535c
>> new head: b3723fdada15080f9d8cad90d57c7689bb029bed
>> overview: https://github.com/pdziepak/Haiku/compare/b2cd1db...b3723fd
>>
>> ----------------------------------------------------------------------------
>>
>> 4c1853d: x86: Let each CPU have its own GDT
>>
>> 2ceb9d5: x86: Store pointer to the current thread in gs:0
>>   
>>   Apparently, reading from dr3 is slower than reading from memory
>>   with cache hit.
>>   
>>   Also, depending on hypervisor configuration, accessing dr3 may cause
>>   a VM exit (and, at least on kvm, it does), what makes it much slower
>>   than a memory access even when there is a cache miss.
> 
> Yeah that's been a source of issues (and bugfixes though) on several
> virtualizers...
> 
> Although won't using gs collide with anything else?
> IIRC gcc4 can use it for stack overflow detection on Linux (actually
> some place at offsets like 40), not sure it's part of an official ABI
> though...


The %gs mention:
http://xorl.wordpress.com/2010/10/14/linux-glibc-stack-canary-values/

François.

Other related posts: