xe_pm_block_on_suspend(9)
π xe_pm_block_on_suspend(9) π
okay so real talk, this is a page from the Kernel API Manual and it's all about xe_pm_block_on_suspend β one tiny little function with big "don't talk to me while I'm getting ready" energy. bestie, let's get into it π
β¨ NAME β¨
xe_pm_block_on_suspend β block pending suspend. that's it. that's the whole vibe. π
πΈ SYNOPSIS πΈ
int xe_pm_block_on_suspend (struct xe_device *xe );
literally one function, one argument, one int coming back at ya. iconic. β¨
π¦ ARGUMENTS π¦
xeβ the xe device that's about to be suspended. like, the main character of this whole situation.
π DESCRIPTION π
so here's the tea π΅ β this function blocks if the pm notifier has started evicting bos, and the whole point is to avoid racing and validating those bos back. no cap, that's the reason. π
the function is annotated to make sure you're not holding any locks that are also grabbed in the pm notifier or in the device suspend / resume. so like... don't be that girl holding a lock she shouldn't. π
this is intended to be used by freezable tasks only β not freezable workqueues, i'm begging you. the intention is that the function returns -ERESTARTSYS when tasks are frozen during suspend, which lets the task go ahead and freeze. π§
β οΈ heads up bestie: the caller must be able to handle the -ERESTARTSYS. if your caller can't handle it, do not pass go, do not collect $200. π
π RETURN π
0β on success, slay β¨-ERESTARTSYSβ on signal pending, or if freezing was requested π₯Ά
π SEE ALSO π
okay this list is long and honestly it ate. here's the whole squad, and also where to find the kernel file:
kernel file ./drivers/gpu/drm/xe/xe_pm.c β Xe Power Management(9), plus:
xe_pm_might_block_on_suspend(9)xe_rpm_reclaim_safe(9)xe_pm_suspend(9)xe_pm_resume(9)xe_pm_init_early(9)xe_pm_probe(9)xe_pm_init(9)xe_pm_fini(9)xe_pm_runtime_suspended(9)xe_pm_runtime_suspend(9)xe_pm_runtime_resume(9)xe_pm_runtime_get(9)xe_pm_runtime_put(9)xe_pm_runtime_get_ioctl(9)xe_pm_runtime_get_if_active(9)xe_pm_runtime_get_if_in_use(9)xe_pm_runtime_get_noresume(9)xe_pm_runtime_resume_and_get(9)xe_pm_assert_unbounded_bridge(9)xe_pm_set_vram_threshold(9)xe_pm_d3cold_allowed_toggle(9)xe_pm_module_init(9)
that's the whole page, bestie. no crumbs left. π«Ά
so yeah β this lives in ./drivers/gpu/drm/xe, dated October 2026, and it's xe_pm_block_on_suspend(9) through and through. go block that suspend responsibly, mwah π periodt πβ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms