__pm_relax(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– __pm_relax β€” the "okay bestie, we're done here" call πŸ’–

So this is __pm_relax from the Kernel API Manual, section 9 β€” it's a kernel function, and honestly? It's the chill one. Let me tell you about it 🫢


✨ NAME ✨

__pm_relax β€” the function that tells the PM core "okay, the wakeup event is handled, processing has ended, we can all breathe now" πŸ’…

No cap, that's literally its whole job: notify the PM core that processing of a wakeup event has ended.


πŸŽ€ SYNOPSIS πŸŽ€

void __pm_relax (struct wakeup_source *ws );

Void return, one pointer in, no drama. Periodt. ✨


🌸 ARGUMENTS 🌸

  • ws β€” the wakeup source object that's associated with the source of the event. Like, which thing woke us up. That's the one you hand over πŸ¦‹

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so the vibe: you call this function for wakeup events whose processing started with a call to __pm_stay_awake. It's the matching end-of-story call β€” you stayed awake for this event, now you're relaxing the grip on it. Iconic pairing, honestly 🌈

And the best part? It is safe to call it from interrupt context πŸ”₯ Like, yes, go ahead, do it from an IRQ handler, it's fine, it's built for that. Main character energy for real.


⭐ SEE ALSO ⭐

Everything below lives in the kernel file ./drivers/base/power/wakeup.c β€” go read the source, bestie, it's giving lore πŸ‘‘

Side note: yeah, pm_wakep_autosleep_enabled(9) really has that p in it in the list β€” we don't fix typos here, we report them with love πŸ’€

πŸ’œ Sign-off πŸ’œ

That's the whole page, bestie β€” short and sweet, from the ./drivers/base/power corner of the kernel world, in the October 2026 edition of the Kernel API Manual. Slay, go relax a wakeup source πŸŽ€βœ¨πŸ§š

πŸ“¦ where this page comes from