Reserve a fast TLS key for GC TLC
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 11 Jan 2018 17:58:46 +0000 (17:58 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 11 Jan 2018 17:58:46 +0000 (17:58 +0000)
commit8642eb364ad1f82595f1bf7b2033a007babb364e
tree72635581ba6449d827c4edce792850bda98a68a9
parent775b2b61a66de620c9cdfdbb6053bf986e3fd1bb
Reserve a fast TLS key for GC TLC
https://bugs.webkit.org/show_bug.cgi?id=181539

Reviewed by Alexey Proskuryakov.

Who knew that thread-local caches would be a mitigation for timing attacks. Here's how it
works: if we have TLCs then we can "context switch" them when we "context switch" origins.
This allows us to put some minimal distance between objects from different origins, which
gives us the ability to allow small overflows when doing certain bounds checks without
creating a useful Spectre information leak.

So I think that means we have to implement thread-local caches (also known as thread-local
allocation buffers, but I prefer the TLC terminology).

* wtf/FastTLS.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226784 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WTF/ChangeLog
Source/WTF/wtf/FastTLS.h