Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
jerrinot
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
1.
▲
Hardware Memory Models
(research.swtch.com)
2 points
by
jerrinot
4mo ago
|
0 comments
2.
▲
by
jerrinot
8mo ago
clock_gettime() goes through the vDSO shim, but whether it avoids a syscall depends on the clock ID and (in some cases) the clock source. For thread-specific CPU user time, the vDSO shim cannot resolve the request in user space and must tra
3.
▲
by
jerrinot
8mo ago
You raise a fair point about the percentiles. Those are reported as point estimates without confidence intervals and the implied precision overstates what system clock can deliver. The mean does get proper statistical treatment (t-distribut
4.
▲
by
jerrinot
8mo ago
Hi Jonas, thanks for the work on OpenJDK and the post! I swear I hadn't seen your blog :) I finished my draft around Christmas and it’s been in the queue since. Great minds think alike, I guess. edit: I just read your blog in full and
5.
▲
by
jerrinot
8mo ago
In a system with green threads, you typically want the CPU time of the fiber or tasklet rather than the carrier thread. In that case, you have to ask the scheduler, not the kernel.
6.
▲
by
jerrinot
8mo ago
Courtesy of Brendan Gregg and his flamegraph.pl scripts: https://github.com/brendangregg/FlameGraph Normally, I use the generator included in async-profiler. It produces interactive HTML. But for this post, I used Bren
7.
▲
by
jerrinot
8mo ago
no problem at all, I was confused too when I saw the profile for the first time.
8.
▲
by
jerrinot
8mo ago
That's a brilliant trick. The setup overhead and permission requirements for perf_event might be heavy for arbitrary threads, but for long-lived threads it looks pretty awesome! Thanks for sharing!
9.
▲
by
jerrinot
8mo ago
Exactly this.
10.
▲
by
jerrinot
8mo ago
Only for some clocks (CLOCK_MONOTONIC, etc) and some clock sources. For VIRT/SCHED, the vDSO shim still has to invoke the actual syscall. You can't avoid the kernel transition when you need per-thread accounting.
11.
▲
by
jerrinot
8mo ago
I was unsure whether to post it or not so I am glad you found it useful!
12.
▲
by
jerrinot
8mo ago
Fair point. These were run on a standard dev workstation under load, which may account for the noise. I haven't done a deep dive into the outliers yet, but the distribution definitely warrants a more isolated look.
13.
▲
by
jerrinot
8mo ago
Author here. After my last post about kernel bugs, I spent some time looking at how the JVM reports its own thread activity. It turns out that "What is the CPU time of this thread?" is/was a much more expensive question than
14.
▲
by
jerrinot
9mo ago
I have no practical experience with bpftrace, so it did not occur to me. I'll give it a try and perhaps there's gonna be a 2nd part of this investigation.
15.
▲
by
jerrinot
9mo ago
It's much tougher when it's so hard to reproduce. Perhaps the NMI watchdog could help? https://docs.kernel.org/admin-guide/lockup-watchdogs.html
16.
▲
by
jerrinot
9mo ago
Wow, someone is actually reading the article in detail, that's a good feeling! In C, the != operator has higher precedence than the || operator. That said, extra parentheses never hurt readability.
17.
▲
by
jerrinot
9mo ago
Thanks for the kind words! Heatmaps are amazing for pattern spotting. I also use them when hunting irregular hiccups or outliers. More people should know about this feature.
18.
▲
by
jerrinot
9mo ago
Author here. I've always been kernel-curious despite never having worked on one myself. Consider this either a collection of impractical party tricks or a hands-on way to get a feel for kernel internals.
19.
▲
by
jerrinot
9mo ago
Snowflake did not acquire RP after all.
20.
▲
Measuring Reorder Buffer Capacity
(blog.stuffedcow.net)
4 points
by
jerrinot
1y ago
|
0 comments
21.
▲
by
jerrinot
1y ago
I expect candidates to suggest similar optimisations, but I felt it was unnecessary for the article itself.
22.
▲
by
jerrinot
1y ago
That’s a neat trick, albeit with limited applicability given the very narrow range. Thanks for sharing!
23.
▲
by
jerrinot
1y ago
That's a very good question. A proper compiler engineer would know, but I will do my best to find something and report back. Edit: I could not find any pass with a pattern matching to replace CAS loops. The closest thing I could find i
24.
▲
by
jerrinot
1y ago
Hi, author here. My superpower is spending unreasonable amounts of time researching things with no practical purpose. Occasionally I blog about it - as a warning to others.
25.
▲
The DB Grill
(db-grill.com)
1 points
by
jerrinot
1y ago
|
0 comments
26.
▲
Autonomy Is the Future of Infrastructure
(redpanda.com)
2 points
by
jerrinot
1y ago
|
0 comments
27.
▲
Optimizing Cache Usage with Nontemporal Accesses
(vgatherps.github.io)
2 points
by
jerrinot
1y ago
|
0 comments
28.
▲
Learning about Debuggers
(werat.dev)
1 points
by
jerrinot
3y ago
|
0 comments
29.
▲
Restartable Sequence Mechanism for TCMalloc
(google.github.io)
1 points
by
jerrinot
3y ago
|
0 comments
30.
▲
A look inside `memcmp` on Intel AVX2 hardware
(xoranth.net)
1 points
by
jerrinot
3y ago
|
0 comments
More ›