}
}
-static void __init cppc_freq_invariance_init(void)
+static void cppc_fie_kworker_init(void)
{
struct sched_attr attr = {
.size = sizeof(struct sched_attr),
};
int ret;
- if (fie_disabled != FIE_ENABLED && fie_disabled != FIE_DISABLED) {
- fie_disabled = FIE_ENABLED;
- if (cppc_perf_ctrs_in_pcc()) {
- pr_info("FIE not enabled on systems with registers in PCC\n");
- fie_disabled = FIE_DISABLED;
- }
- }
-
- if (fie_disabled)
- return;
-
kworker_fie = kthread_run_worker(0, "cppc_fie");
if (IS_ERR(kworker_fie)) {
pr_warn("%s: failed to create kworker_fie: %ld\n", __func__,
}
}
+static void __init cppc_freq_invariance_init(void)
+{
+ if (fie_disabled != FIE_ENABLED && fie_disabled != FIE_DISABLED) {
+ fie_disabled = FIE_ENABLED;
+ if (cppc_perf_ctrs_in_pcc()) {
+ pr_info("FIE not enabled on systems with registers in PCC\n");
+ fie_disabled = FIE_DISABLED;
+ }
+ }
+
+ if (fie_disabled)
+ return;
+
+ cppc_fie_kworker_init();
+}
+
static void cppc_freq_invariance_exit(void)
{
if (fie_disabled)