Intel Working On Implementing GuC Firmware Based Power Management For Linux
Going back to 2017 was work on firmware-based power management for Intel graphics with its GuC implementation. That work didn't advance with the time but now with Intel renewing their work around GuC and with future hardware may mandate this binary-only firmware, they are again revisiting the GuC power management.
Intel has been working to transition to GuC firmware-based scheduling as an option for Gen11/Icelake graphics and newer. At this time they don't appear to be looking to forcing GuC by default for existing hardware but that may change for upcoming/future Intel graphics hardware. The open-source driver work around GuC has been ongoing for years. The GuC microcontroller has been around since Skylake for being able to offload some functionality from the kernel graphics driver to this microcontroller. The one area where GuC is being used currently within the kernel is around its "HuC" for HEVC/H.265 authentication with their media driver.
With the GuC microcontroller being in better shape for Gen11+ and the possibility of requiring its usage for future Intel graphics, there's been the context scheduling work noted in recent months and then on Friday marked the new patches around GuC power management that we haven't seen touched otherwise in several years. Of course, some won't be happy about this with the GuC firmware being loaded at run-time and binary-only, but both NVIDIA and AMD also require closed-source firmware for hardware initialization for their modern GPUs.
These 15~16 patches wire up usage of the single loop power control feature in GuC for handling some power management work otherwise handled by their i915 kernel driver. "With this series, we will enable two PM features - GTPerf and GuCRC. These are the Turbo and RC6 equivalents of the host based version. GuC provides various interfaces via host-to-guc messaging, which allows KMD to enable these features after GuC is loaded and GuC submission is enabled. We will specifically disable the IA/GT Balancer and Duty Cycle control features in SLPC."
GuC SLPC when fully utilized aims to offer better efficiency for power management tasks than being handled by the kernel graphics driver. It will be interesting to see how well it works in practice on Icelake graphics and newer.
Intel has been working to transition to GuC firmware-based scheduling as an option for Gen11/Icelake graphics and newer. At this time they don't appear to be looking to forcing GuC by default for existing hardware but that may change for upcoming/future Intel graphics hardware. The open-source driver work around GuC has been ongoing for years. The GuC microcontroller has been around since Skylake for being able to offload some functionality from the kernel graphics driver to this microcontroller. The one area where GuC is being used currently within the kernel is around its "HuC" for HEVC/H.265 authentication with their media driver.
With the GuC microcontroller being in better shape for Gen11+ and the possibility of requiring its usage for future Intel graphics, there's been the context scheduling work noted in recent months and then on Friday marked the new patches around GuC power management that we haven't seen touched otherwise in several years. Of course, some won't be happy about this with the GuC firmware being loaded at run-time and binary-only, but both NVIDIA and AMD also require closed-source firmware for hardware initialization for their modern GPUs.
These 15~16 patches wire up usage of the single loop power control feature in GuC for handling some power management work otherwise handled by their i915 kernel driver. "With this series, we will enable two PM features - GTPerf and GuCRC. These are the Turbo and RC6 equivalents of the host based version. GuC provides various interfaces via host-to-guc messaging, which allows KMD to enable these features after GuC is loaded and GuC submission is enabled. We will specifically disable the IA/GT Balancer and Duty Cycle control features in SLPC."
GuC SLPC when fully utilized aims to offer better efficiency for power management tasks than being handled by the kernel graphics driver. It will be interesting to see how well it works in practice on Icelake graphics and newer.
14 Comments