|
17 | 17 | * | 0 | 31:16 | **KEY** - KLV key identifier | |
18 | 18 | * | | | - `GuC Self Config KLVs`_ | |
19 | 19 | * | | | - `GuC Opt In Feature KLVs`_ | |
| 20 | + * | | | - `GuC Scheduling Policies KLVs`_ | |
20 | 21 | * | | | - `GuC VGT Policy KLVs`_ | |
21 | 22 | * | | | - `GuC VF Configuration KLVs`_ | |
22 | 23 | * | | | | |
@@ -152,6 +153,30 @@ enum { |
152 | 153 | #define GUC_KLV_OPT_IN_FEATURE_DYNAMIC_INHIBIT_CONTEXT_SWITCH_KEY 0x4003 |
153 | 154 | #define GUC_KLV_OPT_IN_FEATURE_DYNAMIC_INHIBIT_CONTEXT_SWITCH_LEN 0u |
154 | 155 |
|
| 156 | +/** |
| 157 | + * DOC: GuC Scheduling Policies KLVs |
| 158 | + * |
| 159 | + * `GuC KLV`_ keys available for use with UPDATE_SCHEDULING_POLICIES_KLV. |
| 160 | + * |
| 161 | + * _`GUC_KLV_SCHEDULING_POLICIES_RENDER_COMPUTE_YIELD` : 0x1001 |
| 162 | + * Some platforms do not allow concurrent execution of RCS and CCS |
| 163 | + * workloads from different address spaces. By default, the GuC prioritizes |
| 164 | + * RCS submissions over CCS ones, which can lead to CCS workloads being |
| 165 | + * significantly (or completely) starved of execution time. This KLV allows |
| 166 | + * the driver to specify a quantum (in ms) and a ratio (percentage value |
| 167 | + * between 0 and 100), and the GuC will prioritize the CCS for that |
| 168 | + * percentage of each quantum. For example, specifying 100ms and 30% will |
| 169 | + * make the GuC prioritize the CCS for 30ms of every 100ms. |
| 170 | + * Note that this does not necessarly mean that RCS and CCS engines will |
| 171 | + * only be active for their percentage of the quantum, as the restriction |
| 172 | + * only kicks in if both classes are fully busy with non-compatible address |
| 173 | + * spaces; i.e., if one engine is idle or running the same address space, |
| 174 | + * a pending job on the other engine will still be submitted to the HW no |
| 175 | + * matter what the ratio is |
| 176 | + */ |
| 177 | +#define GUC_KLV_SCHEDULING_POLICIES_RENDER_COMPUTE_YIELD_KEY 0x1001 |
| 178 | +#define GUC_KLV_SCHEDULING_POLICIES_RENDER_COMPUTE_YIELD_LEN 2u |
| 179 | + |
155 | 180 | /** |
156 | 181 | * DOC: GuC VGT Policy KLVs |
157 | 182 | * |
|
0 commit comments