Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    P

    Paul McKenney

    paulmck.livejournal.com · Personal blog · on HN since 2011

    Paul McKenney, a Linux kernel RCU maintainer, writes about parallel programming, memory models, RCU, and Rust in the kernel.

    Visit blogRSSHN submissions
    Systems & PerformanceOpen Source & LinuxLanguages & Compilers
    What HN says

    Commenters recommend his series on transactional memory and his posts on Rust and RCU, with discussion of how hard kernel patterns are in Rust.

    Stats for nerds
    32HN people shared it
    32linked in comments
    680story points
    Nov 2022last shared
    2013people per year2022

    Top posts on HN

    1. 1
      So You Want to Rust the Linux Kernel?
      6 people · 244 points · first shared 2021 · 324 comments on HN
    2. 2
      Is parallel programming hard, and, if so, what can you do about it?
      1 person · 135 points · first shared 2020 · 85 comments on HN
    3. 3
      What memory model should Rust use?
      1 person · 122 points · first shared 2021 · 149 comments on HN
    4. 4
      How read-intensive is the kernel's use of RCU? (2022)
      1 person · 54 points · first shared 2024 · 5 comments on HN
    5. 5
      Parallel Programming, a book by Paul McKenney
      1 person · 46 points · first shared 2011 · 6 comments on HN
    6. 6
      Stupid RCU Tricks: Enlisting the Aid of a Debugger
      1 person · 13 points · first shared 2020 · 1 comments on HN
    7. 7
      Verification Challenge 2: RCU NO_HZ_FULL_SYSIDLE
      1 person · 12 points · first shared 2015 · Discussion on HN
    8. 8
      Rcutorture Catches an RCU Bug
      1 person · 8 points · first shared 2014 · Discussion on HN
    9. 9
      Stupid SMP Tricks: A Review of Locking Engineering Principles and Hierarchy
      1 person · 8 points · first shared 2022 · Discussion on HN
    10. 10
      Stupid RCU Tricks: Is RCU Watching?
      2 people · 4 points · first shared 2022 · Discussion on HN

    What HN people wrote when they linked it

    • volta83Oct 2021

      > Given that DEC Alpha famously had difficulty with RCU, it is only reasonable to ask how Rust will do with it.

      > Including some wild speculation about how Rust's ownership model might be generalized

      I recommend starting with the latests post in the series and the conclusions(https://paulmck.livejournal.com/64209.html and https://paulmck.livejournal.com/65056.html).

      From the snippets at the beginning, it looks like the author documented how they started learning about how to solve these problems in Rust, and it does not take too long until the comment section starts pointing the author at crossbeam-rs, GhostCell, etc. which only start appearing in the series in the last couple of sections.

      Learning Rust by implementing a linked-list is pretty hard, but "Learning Rust by implementing RCU" has to be, by far, the hardest way to learn Rust that I know of. Kudos to the author for pushing through this so quickly and thoroguly. The posts are all excellent.

      I wish the author would go a little bit more into crossbeam-rs. One thing the author does not consider, is that a safe Rust interface to RCU is essentially a "proof of correctness" for RCU, i.e., it proves that using RCU via that interface cannot introduce undefined behavior. (Or maybe more technically, the contracts on the correctness of unsafe code within the safe wrapper provide a potentially incorrect "proof" of this).

      AFAIK no such correctness proof for the C APIs exists (there are a couple of linters that catch some…

    • quotemstrDec 2021

      > This means that using it for the core parts may be feasible sooner rather than later, no?

      More like much later. There are several performance-critical patterns used in the Linux kernel that are difficult to express in unsafe Rust and impossible to express in safe Rust.

      See https://paulmck.livejournal.com/62436.html and especially https://paulmck.livejournal.com/64209.html

      I think promoting the use of Rust for driver code is an excellent compromise.

      As an aside, I'd like to see Linux go further and move many of these drivers to user space. Now that we have io_uring, old performance-based arguments for keeping certain drivers in ring 0 hold less weight.

    • Pr0ject217Feb 2022

      EDIT:

      Paste this hacky snippet into your browser's console to save all of the links into your clipboard:

      (() =>
      {
      let result = [...document.querySelectorAll('td a')]
      .map((link) =>
      link &&
      !link.href.includes('ycombinator') &&
      !link.href.includes('javascript:void')
      ? link.href
      : ''
      )
      .filter(Boolean);
      result = [...new Set(result)];
      result.sort();
      copy(result.join('\n\n'));
      })();

      Just to help, here's a compiled-list of all of the links shared here so…

    • alexgartrellOct 2021

      I shared this perspective, but luckily my job is awesome and (in a routine 1:1!) Paul told me why it's less straightforward than I thought: https://paulmck.livejournal.com/62436.html

      my takeaway was essentially that you get sweet perf wins from semantics that are hard to replicate with a type system that's also making really strong guarantees without making the code SUPER gross.

    • tux3Nov 2022

      Here's a pretty good blog post that discusses how the memory models could interact: https://paulmck.livejournal.com/65341.html

      My understanding is that it might not be entirely settled yet, and is still being discussed. That could explain why there isn't much solid documentation written yet

    • jedbrownJun 2013

      I highly recommend Paul McKenney's blog series on this topic:

      http://paulmck.livejournal.com/tag/transactional%20memory%20everywhere

    Related

    Nick Cameronncameron.org65 people

    Rust in 2022

    Nick Cameron
    Personal · last shared 2026
    Justine Tunneyjustine.lol251 people

    Show HN: Redbean – Single-file distributable web server

    Justine Tunney
    Personal · last shared 2026
    Rich Felkerewontfix.com36 people

    Broken by design: systemd

    Rich Felker
    Personal · last shared 2025
    Karl Ruppkarlrupp.net16 people

    40 Years of Microprocessor Trend Data (2015)

    Karl Rupp
    Personal · last shared 2025
    Collabora Blogcollabora.com129 people

    Matt Godbolt sold me on Rust by showing me C++

    Collabora Blog
    Company · last shared 2026
    Keegan McAllistermainisusuallyafunction.blogspot.com52 people

    151-byte static Linux binary in Rust

    Keegan McAllister
    Personal · last shared 2023
    Graham Jenkinsdarkcoding.net44 people

    Facebook’s code quality problem (2015)

    Graham Jenkins
    Personal · last shared 2025
    ldpreloadldpreload.com34 people

    Finding a kernel regression in half an hour with git bisect run (2018)

    ldpreload
    Personal · last shared 2026