drm_kms_hel..._poll_worker(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… drm_kms_helper_is_poll_worker(9) β€” from the Kernel API Manual, bestie

okay so picture this: it's a kernel API manual page, the title is literally drm_kms_hel..._poll_worker(9) (yes the truncation is real, that's just how she abbreviates when the name is too long to slay πŸ’€), and it's living in the Kernel API Manual. cute. iconic. let's get into it ✨


🌸 NAME 🌸

drm_kms_helper_is_poll_worker β€” is %current task an output poll worker?

like, literally just asking: is the thing running right now an output poll worker? that's the whole vibe check 🫢


✨ SYNOPSIS ✨

bool drm_kms_helper_is_poll_worker (void );

she returns a bool, she takes void, she's low maintenance, we love her πŸ’–


πŸŽ€ ARGUMENTS πŸŽ€

  • void β€” no arguments. none. zero. nada. she doesn't want anything from you, she's independent like that πŸ‘‘

πŸ’… DESCRIPTION πŸ’…

So the whole point of this function is to determine if the current task is an output poll worker. That's it. That's the assignment and she ATE πŸ”₯

Why do we care tho? Because you can use this to select distinct code paths for output polling vs. other contexts. Basically: "am I in poll-worker land rn, or am I somewhere else?" and then you branch accordingly. iykyk 🌈

πŸ¦‹ the deadlock situation (this is the important part, bestie)

One use case β€” and ngl this is the main character reason she exists β€” is to avoid a deadlock between the output poll worker and the autosuspend worker. Let me break down this messy love triangle for you 😭

  • the autosuspend worker waits for polling to finish when it calls drm_kms_helper_poll_disable
  • meanwhile the output poll worker waits for runtime suspend to finish when it calls pm_runtime_get_sync inside a connector ->detect hook

so they're both waiting on each other, forever, like two besties both texting "no you hang up first" πŸ’€ and that's the deadlock. this function lets you check which one you are so you can dodge the whole situation. no cap, that's the tea πŸ“


🌟 SEE ALSO 🌟

okay bestie, buckle up, this list is LONG and she did not skip a single one πŸ’œ go read these, they're all part of the same friend group:


like, for real though β€” every name above is a real page in section 9 of the kernel docs, and they're all doing related output-probing/polling/hotplug stuff. go be nosy, it's good for you πŸ’–

and that's the whole page, bestie 🌈✨

this little legend lives at ./drivers/gpu/drm, she's stamped October 2026, and she's part of the Kernel API Manual β€” so if you're ever like "wait, where did I read this??" it was here, in section 9, the whole time 🫢 mwah πŸ’‹

πŸ“¦ where this page comes from