STRUCT MMU_INTERVAL_NOTIFIER_FINISH(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct mmu_...ifier_finish(9) ✨

okay so bestie, this is a page straight out of the Kernel API Manual, and it's giving β€œmmu_interval_notifier two-pass abstraction” realness 🫢 buckle up, it's lowkey important πŸ‘‘


🌸 NAME 🌸

struct mmu_interval_notifier_finish β€” the mmu_interval_notifier two-pass abstraction, no cap πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct mmu_interval_notifier_finish {
    struct llist_node link;
    struct mmu_interval_notifier *notifier;
};

πŸŽ€ Members πŸŽ€

  • link β€” Lockless list link for the notifiers pending pass list πŸ”—
  • notifier β€” The mmu_interval_notifier for which the finish pass is called ✨

πŸ’… Description πŸ’…

Allocate this thing, typically using GFP_NOWAIT, in the interval notifier's start pass. But listen: with a large number of notifiers implementing two passes, allocation with GFP_NOWAIT will become increasingly likely to fail 😭 so consider implementing a small pool instead of using kmalloc allocations. fr fr, plan ahead 🧚

If the implementation needs to pass data between the start and the finish passes, the recommended way is to embed struct mmu_interval_notifier_finish into a larger structure that also contains the data needed to be shared. Keep in mind that a notifier callback can be invoked in parallel, and each invocation needs its own struct mmu_interval_notifier_finish πŸ‘€

If allocation fails, then the mmu_interval_notifier_ops->invalidate_start op needs to implements the full notifier functionality. Please refer to its documentation. πŸ’€

🌈 SEE ALSO 🌈

Kernel file ./include/linux/mmu_notifier.h β€” go check these besties:


xoxo, this page comes from ./include/linux, dated October 2026, and it's the struct mmu_...ifier_finish(9) manual page. periodt πŸ’–πŸŽ€

πŸ“¦ where this page comes from