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.