static int runnables_start(void) { int err, i; err = runnables_sysfs(); if (err) return err; runnables_wq = alloc_workqueue("cpuquiet-runnables", WQ_UNBOUND | WQ_RESCUER | WQ_FREEZABLE, 1); if (!runnables_wq) return -ENOMEM; INIT_DELAYED_WORK(&runnables_work, runnables_work_func); for(i = 0; i < ARRAY_SIZE(nr_run_thresholds); ++i) { if (i < ARRAY_SIZE(default_thresholds)) nr_run_thresholds[i] = default_thresholds[i]; else if (i == (ARRAY_SIZE(nr_run_thresholds) - 1)) nr_run_thresholds[i] = UINT_MAX; else nr_run_thresholds[i] = i + 1 + NR_FSHIFT / default_threshold_level; } runnables_state = IDLE; runnables_work_func(NULL); return 0; }
static int runnables_start(void) { int err; err = runnables_sysfs(); if (err) return err; runnables_wq = alloc_workqueue("cpuquiet-runnables", WQ_UNBOUND | WQ_RESCUER | WQ_FREEZABLE, 1); if (!runnables_wq) return -ENOMEM; INIT_DELAYED_WORK(&runnables_work, runnables_work_func); runnables_state = IDLE; runnables_work_func(NULL); return 0; }