[wasm] Add PKU support histogram
This is a partial reland of https://crrev.com/c/2850932, which was reverted because the histogram failed Chromium integration. The V8 histogram added here uses only two values (0 = no support, 1 = support), but is declared with 3 buckets in order not not fail a DCHECK on Chromium's side. As soon as https://crrev.com/c/2874651 lands in Chromium, we can properly declare the histogram here with only 2 buckets, but for now this is good enough to get early data on PKU support in the wild. The other part of the original reverted CL (adding PKU alloc and free functions, and a V8 flag for PKU) was already landed again in https://crrev.com/c/2878738 Original change's description: > [wasm] Add PKU alloc/free and support counter > > To enforce W^X for the WebAssembly code space, we want to explore using > Intel memory protection keys for userspace, also known as MPK, PKEYs, or > PKU. Instead of flipping page protection flags with mprotect (which > incurs a high syscall overhead; and which switches flags for the whole > process), this associates a key with each page once, and then changes > the permissions of that key with a fast thread-local register write. > That is, this gives both finger-grained permissions (per-thread) and > more performance. > > This CL is starts experimenting with PKUs by > (1) trying to allocate a protection key once per {WasmEngine} in x64 > Linux systems, and > (2) adding a counter for recording the sucess/failure of that, to assess > the support for PKUs on the target machine. > > The low-level PKU allocating functions should be moved into base/platform > long-term, but are inside wasm/ for this CL. > > R=clemensb@chromium.org > CC=jkummerow@chromium.org > > Bug: v8:11714 > Change-Id: Ia4858970ced4d0b84cc8c2651e86dceb532c88a7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850932 > Commit-Queue: Daniel Lehmann <dlehmann@google.com> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74319} Bug: v8:11714, chromium:1207318 Change-Id: I1035ac09bd7aa04584fbc5df7a408b96dd270d0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2871451Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Daniel Lehmann <dlehmann@google.com> Cr-Commit-Position: refs/heads/master@{#74477}
Showing
Please
register
or
sign in
to comment