Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
ckennelly
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
4 ms
·
1.
▲
by
ckennelly
7d ago
With restartable sequences in Linux, there is no need for mutexes or RMW atomics. The mutual exclusion is guaranteed by the kernel.
2.
▲
by
ckennelly
7d ago
TCMalloc has different abort handlers for each function: If preempted, we need to know where to restart. If `rseq_cs` is no longer describing a relevant address, that is, the program counter has moved past it, the kernel just ignores it.
3.
▲
by
ckennelly
7d ago
TCMalloc TL here :) The code is executed by a single thread. Everything retires in program order. There is no need for a memory barrier between starting the critical section and its body.
4.
▲
Illuminating the processor core with LLVM-mca
(abseil.io)
68 points
by
ckennelly
10mo ago
|
5 comments
5.
▲
Optimizing Optimization
(abseil.io)
2 points
by
ckennelly
2y ago
|
0 comments
6.
▲
by
ckennelly
4y ago
It depends on your STL implementation's representation of string: https://godbolt.org/z/nMYGYoWbq * libstdc++ has an internal reference to its own address for the SSO. If the moved-from string was referencing its
7.
▲
Beware Microbenchmarks Bearing Gifts
(abseil.io)
7 points
by
ckennelly
4y ago
|
0 comments
8.
▲
by
ckennelly
4y ago
The default setting of max_ptes_none is also problematic. On a stock kernel, it's 511. TCMalloc's docs recommend using max_ptes_none set to 0 for this reason: https://github.com/google/tcmalloc/blob/
9.
▲
by
ckennelly
5y ago
As mentioned in that Stack Overflow post, though, things change again with FSRM (Fast Short Rep Mov). While there are still startup costs, the overhead of calling a function (especially via a PLT) and incurring instruction cache misses is h
10.
▲
by
ckennelly
5y ago
https://research.google/pubs/pub50338.pdf goes into more depth on the mem* libc functions and principles for the implementations in llvm libc.
11.
▲
by
ckennelly
6y ago
llvm-libc's memcpy is heavily sized optimized for this reason. A dedicated instruction that is fast for all cases, is ideal, though.
12.
▲
by
ckennelly
6y ago
You can still get a benefit from sized delete, even without inlining.
13.
▲
by
ckennelly
6y ago
Dynamic linking requires calling through the PLT to get to the implementation, so there's a data dependency on determining where the code for it is. Independent of inlining (with LTO, since the C++ language rules requires inhibit optim
14.
▲
by
ckennelly
6y ago
The cost in applications really does add up. "Profiling a warehouse-scale computer" (by S. Kanev, et. al.) showed several % of CPU usage allocating and deallocating memory. While a malloc and free does have some data dependencies
15.
▲
by
ckennelly
7y ago
This is the modern version--based on Abseil--that we use in production for practically every C++ binary. It includes a number of performance optimizations (per-CPU caches, an improved fast/slow path, and a hugepage-aware backed), alon
16.
▲
Announcing TCMalloc
(abseil.io)
9 points
by
ckennelly
7y ago
|
3 comments
17.
▲
by
ckennelly
8y ago
They're not confidence intervals, but weather.gov's forecasts include a link to the NWS office's forecast discussion (updated every few hours). This can give you a bit of insight into forecaster uncertainty and the variation
18.
▲
by
ckennelly
12y ago
Thanks for taking a look. To go through your points: * If the "wrong" GPG binary is loaded, the game is likely already up: If an attacker has that degree of control over your machine, they're already on the other side of thi
19.
▲
Show HN: Asymmetricfs – An Asymmetric, Encrypting Filesystem for Userspace
(github.com)
20 points
by
ckennelly
12y ago
|
3 comments
20.
▲
Panoptes: A Binary Translation Framework for CUDA
(github.com)
2 points
by
ckennelly
14y ago
|
0 comments