STRUCT DELAYED_FREE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct delayed_free(9) ✨

okay bestie, so this is a kernel API page β€” the <cyan>struct delayed_free</cyan> one β€” and honestly it's giving "small struct, big responsibilities" energy. let's get into it πŸ’…


🌸 NAME 🌸

struct delayed_free β€” the data structures used for delayed freeing. that's it, that's the vibe πŸŽ€


✨ SYNOPSIS ✨

like, here's the whole thing, verbatim, no cap:

struct delayed_free {
    struct rcu_head         rcu_head;
    int index;
    int scheduled;
    struct pending_free     pf[2];
 };

πŸ¦‹ Members πŸ¦‹

  • rcu_head β€” this one's used to schedule an RCU callback for freeing data structures. it's the little hook that makes the whole "delayed" thing happen ⭐
  • index β€” the index of pf that freed data structures get added to. yes, pf is plural-ish and this is your pointer into it πŸ‘‘
  • scheduled β€” literally just tracks whether or not an RCU callback has been scheduled. a yes/no situation, we love a boolean-ish girlie 🫢
  • pf β€” an array holding information about the data structures that are about to be freed. it's the receipts pile πŸ™ˆ

πŸ’– Description πŸ’–

so picture this: it's a data structure for delayed freeing of data structures that might still be getting accessed by RCU readers at the exact moment those things were freed. which is a whole mess if you don't delay β€” so we delay. iconic behaviour, honestly πŸ”₯


🌈 SEE ALSO 🌈


that's the whole page bestie, you ate that. this one lives in ./kernel/locking, it's dated October 2026, and it's from the Kernel API Manual β€” mwah, go forth and delay your frees responsibly πŸ’œπŸ§š

πŸ“¦ where this page comes from