Top all-time · #2138
Francesco Mazzoli
Personal blog · mazzo.li/posts · on HN as rostayobprogrammingsystemshardware
Francesco Mazzoli writes bitonic's blog., a personal blog at mazzo.li about programming, systems and hardware. Since 2013, 35 different Hacker News readers have linked it 61 times, most often “Beating the L1 cache with value speculation (2021)”. It is still writing: the last post was on 2025-10-17, and you can follow it by feed.
Too few sampled comments (12) to say how often HN recommends it.?
Why HN links it
HN readers link this blog for deep dives into Linux, low-level performance and algorithms, such as fast pipes, io_uring, value speculation and huge pages.
Summarised by Claude from a sample of 12 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Beating the L1 cache with value speculation (2021)5 people · 5 mentions · first linked 2021-07-23
- How fast are Linux pipes anyway?5 people · 5 mentions · first linked 2022-06-02
- Benefits of Undefined Behavior4 people · 4 mentions · first linked 2025-10-18
- Waiting for many things at once with io_uring3 people · 3 mentions · first linked 2024-09-22
- Agda by Example: Sorting2 people · 3 mentions · first linked 2013-04-02
- Reliably Allocating Pages in Linux2 people · 3 mentions · first linked 2021-11-24
- /posts/autoscreen.html2 people · 2 mentions · first linked 2021-01-12
- How to stop Linux threads cleanly2 people · 2 mentions · first linked 2024-01-08
- Speeding up atan2f2 people · 2 mentions · first linked 2021-08-17
- Lánczos Interpolation Explained (2022)2 people · 2 mentions · first linked 2022-10-07
What Hacker News says?
Hello https://mazzo.li/posts/fast-pipes.html#what-are-pipes-made-o... I think the diagram near the start of this section has "head" and "tail" swapped. Edit: Nevermind, I didn't read far enough.
Comment linking /posts/fast-pipes.html
on “How fast are Linux pipes anyway?”Submitted How fast are Linux pipes anyway? as a story · 698 points
HN discussionIf you require SSH features (e.g. port forwarding) or want to continue using your terminal's native scroll functionality, here's another alternative that a friend and I devised: https://mazzo.li/posts/autoscreen.html
Comment linking /posts/autoscreen.html
on “My ISP Is Killing My Idle SSH Sessions”Submitted How fast are Linux pipes anyway? (2022) as a story · 258 points
HN discussionFrancesco Mazzoli’s blog on https://mazzo.li/archive.html . His blog has topped HN a few times with various low-level/linux topics, some deep dives into algorithms etc.
Comment linking /archive.html
on “Ask HN: What are the best engineering blogs with real-world depth?”Submitted Beating the L1 cache with value speculation (2021) as a story · 248 points
HN discussionWell in the articles case, it's the linked list `next` pointers: https://mazzo.li/posts/value-speculation.html#value-speculat... In a happy case, those will be laid out sequentially in memory so you can guess the value of the pointer easily. (That said your comment still stands, since using linked lists in the first place is much more rare). But I suppose there's probably a lot of other domains where you might have…
Comment linking /posts/value-speculation.html
on “Beating the L1 cache with value speculation (2021)”Submitted How to stop Linux threads cleanly as a story · 245 points
HN discussionI talk about the cancelability state and how it can help us shortly after that statement: https://mazzo.li/posts/stopping-linux-threads.html#controlle... . In hindsight I should have made a forward reference to that section when talking about C++. My broad point was that combining C++ exceptions and thread cancellation is fraught with danger and imo best avoided.
Comment linking /posts/stopping-linux-threads.html
on “How to stop Linux threads cleanly”Submitted Speeding up atan2f as a story · 245 points
HN discussionThis option is described in detail in the blog posts, with its associated problems, see this section: https://mazzo.li/posts/stopping-linux-threads.html#homegrown... .
Comment linking /posts/stopping-linux-threads.html
on “How to stop Linux threads cleanly”Submitted When static makes your C code 10 times faster as a story · 201 points
HN discussionThis is noted in the blog post, but the problem is that sometimes you don't have the freedom to do so. See this sidenote and the section next to it: https://mazzo.li/posts/stopping-linux-threads.html#fn3 .
Comment linking /posts/stopping-linux-threads.html
on “How to stop Linux threads cleanly”Submitted Using GDPR to obtain one’s data as JSON as a story · 182 points
HN discussionI've been using this script for years, and it works great: https://mazzo.li/posts/autoscreen.html It's very much like eternal terminal, but requires no upfront setup apart from having screen installed on the server.
Comment linking /posts/autoscreen.html
on “SSH alternatives for mobile, low-latency or unreliable connections”Submitted The essence of Reed-Solomon coding as a story · 168 points
HN discussionSurprisingly, I only came across Francesco's blog this month. I stumbled upon the 2021 post "Speeding up atan2f by 50x" while searching for others who have to reimplement trigonometry in SIMD every other year. I've also enjoyed "Beating the L1 cache with value speculation" from the same year, as well as the 2013 Agda sorting example. Highly recommend checking it out: https://mazzo.li/archive.html
Comment linking /archive.html
on “Waiting for many things at once with io_uring”Submitted Lánczos Interpolation Explained (2022) as a story · 166 points
HN discussion>vmsplice is more of a mini shared memory mechanism between two processes Doesn't seem to be the case, as it only supports zero-copy from user-memory to the pipe. The other way around results in a copy - see https://mazzo.li/posts/fast-pipes.html#fn10
Comment linking /posts/fast-pipes.html
on “How fast are Linux pipes anyway?”Submitted Beating the L1 cache with value speculation as a story · 157 points
HN discussionThere is also a great blog post that covers reliably allocating huge pages: https://mazzo.li/posts/check-huge-page.html
Comment linking /posts/check-huge-page.html
on “Pages Are a Good Idea”Submitted Waiting for many things at once with io_uring as a story · 123 points
HN discussionI'll share a couple: - Branch prediction https://danluu.com/branch-prediction/ - How fast are Linux pipes anyway? https://mazzo.li/posts/fast-pipes.html - NAT Slipstreaming v2.0 https://samy.pl/slipstream/
Comment linking /posts/fast-pipes.html
on “Ask HN: What are your favorite technical blog posts?”Submitted How to store Go pointers from assembly as a story · 73 points
HN discussionhttps://mazzo.li/posts/fast-pipes.html#splicing : > In general when we write to a socket, or a file, or in our case a pipe, we’re first writing to a buffer somewhere in the kernel, and then let the kernel do its work. In the case of pipes, the pipe is a series of buffers in the kernel. All this copying is undesirable if we’re in the business of performance. > Luckily, Linux includes system calls to speed things up w…
Comment linking /posts/fast-pipes.html
on “Ubus (OpenWrt micro bus architecture)”Submitted Agda by Example: λ-calculus as a story · 71 points
HN discussionYes, with some work: https://mazzo.li/posts/fast-pipes.html
Comment linking /posts/fast-pipes.html
on “Ubus (OpenWrt micro bus architecture)”Submitted Lánczos Interpolation Explained as a story · 64 points
HN discussion> On modern CPUs, avoiding branch misprediction is a key technique to speed up programs. This is true but it's misleading. The reality is that modern out-of-order superscalar CPUs are so good at branch prediction that it's nearly always better to branch in a tight loop (to allow more ILP) than introduce a data-dependency in a tight loop (which limits ILP). Cf. https://mazzo.li/posts/value-speculation.html , https://…
Comment linking /posts/value-speculation.html
on “Branchless Quicksort faster than std:sort and pdqsort with C and C++ API”Submitted How to stop Linux threads cleanly as a story · 61 points
HN discussion