STRUCT MSM_GPU_DEVFREQ(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ struct msm_gpu_devfreq(9) β€” the Kernel API Manual glow-up

okay so bestie, this is a page from the Kernel API Manual, section 9, and we're talking about struct msm_gpu_devfreq. It's literally the lil state-holder for all things devfreq on the msm GPU driver. Buckle up πŸŽ€


✨ NAME ✨

struct msm_gpu_devfreq β€” devfreq related state πŸ¦‹

Like, that's it. That's the whole job. It holds the devfreq-related state. Slay.


🌸 SYNOPSIS 🌸

struct msm_gpu_devfreq {
    struct devfreq *devfreq;
    struct mutex lock;
    unsigned long idle_freq;
    struct dev_pm_qos_request boost_freq;
    u64 busy_cycles;
    ktime_t time;
    ktime_t idle_time;
    struct msm_hrtimer_work idle_work;
    struct msm_hrtimer_work boost_work;
    bool suspended;
 };

Look at her. Iconic. Every field accounted for, no notes πŸ’…


🫢 Members β€” a field-by-field vibe check 🫢

  • devfreq β€” the devfreq instance itself. The main character, honestly.
  • lock β€” the lock guarding "suspended", "busy_cycles", and "time". Three whole fields under one lock, that's her job fr fr πŸ”₯
  • idle_freq β€” a shadow frequency used while the GPU is idle. Lowkey genius: from the PoV of the devfreq governor, we're still out here sampling busyness and adjusting frequency the whole time the GPU is idle β€” but we use this shadow value instead, because the GPU is actually clamped to minimum frequency while it's inactive. Sneaky. Correct. Obsessed 😭
  • boost_freq β€” a PM QoS constraint that boosts min freq for a period of time, right up until the boost expires ⭐
  • busy_cycles β€” the last busy counter value, kept around so we can calculate elapsed busy cycles since the last sampling period πŸ“
  • time β€” time of the last sampling period. Timestamp bestie πŸŽ€
  • idle_time β€” time of the last transition to idle 🌈
  • idle_work β€” used to delay clamping to idle freq on the active->idle transition. Patience is a virtue, and also a work item πŸ’€
  • boost_work β€” used to reset the boost_constraint after the boost period has elapsed. Cleanup crew, no cap ✨
  • suspended β€” tracks if we're suspended πŸ™ˆ

πŸ‘‘ SEE ALSO πŸ‘‘

Go read these next, bestie, they're all in the same friend group:


πŸ’– Sign-off πŸ’–

That's the whole page, bestie β€” brought to you by ./drivers/gpu/drm/msm, version October 2026, and struct msm_gpu_devfreq(9). Go forth and sample some busyness. Periodt. πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from