scx_error
scx_error(sch, "scx_bpf_cid_override: failed to allocate cpumask");
scx_error(sch, "scx_bpf_cid_override() only allowed from root sched");
scx_error(sch, "scx_bpf_cid_override: expected %zu bytes, got %u",
scx_error(sch, "cid %d assigned to multiple cpus", c);
scx_error(sch, "invalid cid %d", cid);
scx_error(sch, "Invalid target CPU %d", cpu);
scx_error(sch, "accessing rq without holding rq lock");
scx_error(sch, "scx_bpf_tid_to_task() called without SCX_OPS_TID_TO_TASK");
scx_error(sch, "invalid CPU %d%s%s", cpu, where ? " " : "", where ?: "");
scx_error(sch, "ops.%s() returned an invalid errno %d", ops_name, err);
scx_error(sch, "DSQ 0x%llx not allowed for reenq", dsq->id);
scx_error(sch, "attempting to dispatch to a destroyed dsq");
scx_error(sch, "cannot use vtime ordering for built-in DSQs");
scx_error(sch, "DSQ ID 0x%016llx already had FIFO-enqueued tasks",
scx_error(sch, "DSQ ID 0x%016llx already had PRIQ-enqueued tasks",
scx_error(sch, "non-existent DSQ 0x%llx", dsq_id);
scx_error(sch, "%s[%d] already direct-dispatched",
scx_error(sch, "scheduling for %s[%d] but trying to direct-dispatch %s[%d]",
scx_error(sch, "SCX_DSQ_LOCAL[_ON] cannot move migration disabled %s[%d] from CPU %d to %d",
scx_error(sch, "SCX_DSQ_LOCAL[_ON] target CPU %d not allowed for %s[%d]",
scx_error(sch, "non-root ops.init_task() set task->scx.disallow for %s[%d]",
scx_error(sch, "ops.init_task() set task->scx.disallow for %s[%d] during fork",
scx_error(sch, "SCX_ENQ_REENQ on SCX_DSQ_LOCAL repeated %u times",
scx_error(sch, "attempting to destroy in-use dsq 0x%016llx (nr=%u)",
scx_error(sch, "ops.cgroup_init() failed (%d)", ret);
scx_error(sch, "%s (%d)", err_msg, ret);
scx_error(parent, "ops.init_task() failed (%d) for %s[%d] while disabling a sub-scheduler",
scx_error(sch, "SCX_OPS_ENQ_LAST requires ops.enqueue() to be implemented");
scx_error(sch, "SCX_OPS_TID_TO_TASK requires root scheduler to enable it");
scx_error(sch, "SCX_OPS_BUILTIN_IDLE_PER_NODE requires CPU idle selection enabled");
scx_error(sch, "sub-sched requires cid-form struct_ops");
scx_error(sch, "sub_attach/sub_detach requires cid-form struct_ops");
scx_error(sch, "ops.init() failed (%d)", ret);
scx_error(sch, "ops.init_task() failed (%d) for %s[%d]",
scx_error(sch, "scx_root_enable() failed (%d)", ret);
scx_error(sch, "max nesting depth %d violated",
scx_error(sch, "ops.init() failed (%d)", ret);
scx_error(sch, "parent rejected (%d)", ret);
scx_error(sch, "cgroup is not online");
scx_error(sch, "scx_sub_enable() failed (%d)", ret);
scx_error(sch, "dispatch recursion detected");
scx_error(sch, "SCX_ENQ_IMMED on a non-local DSQ 0x%llx", dsq_id);
scx_error(sch, "called with NULL task");
scx_error(sch, "invalid enq_flags 0x%llx", *enq_flags);
scx_error(sch, "dispatch buffer overflow");
scx_error(scx_task_sched(p), "__scx_bpf_dsq_insert_vtime() must be used");
scx_error(sch, "scx_bpf_dsq_move[_vtime]() on %s[%d] but the task belongs to a different scheduler",
scx_error(sch, "dispatch buffer underflow");
scx_error(sch, "invalid DSQ ID 0x%016llx", dsq_id);
scx_error(parent, "trying to dispatch a distant sub-sched on cgroup %llu",
scx_error(sch, "PREEMPT/WAIT cannot be used with SCX_KICK_IDLE");
scx_error(sch, "peek disallowed on builtin DSQ 0x%llx", dsq_id);
scx_error(sch, "peek on non-existent DSQ 0x%llx", dsq_id);
scx_error(sch, "invalid SCX_REENQ flags 0x%llx", reenq_flags);
scx_error(sch, "invalid data=%p and data__sz=%u", (void *)data, data__sz);
scx_error(sch, "failed to read data fields (%d)", ret);
scx_error(sch, "format preparation failed (%d)", ret);
scx_error(sch, "(\"%s\", %p, %u) failed to format", fmt, data, data__sz);
scx_error(sch, "scx_bpf_dump() must only be called from ops.dump() and friends");
scx_error(sch, "Invalid cpuperf target %u for CPU %d", perf, cpu);
scx_error(scx_task_sched(p), "__scx_bpf_select_cpu_and() must be used");
scx_error(sch, "SCX_OPS_BUILTIN_IDLE_PER_NODE enabled");
scx_error(sch, "SCX_OPS_BUILTIN_IDLE_PER_NODE enabled");
scx_error(sch, "per-node idle tracking is enabled");
scx_error(sch, "per-node idle tracking is enabled");
scx_error(sch, "per-node idle tracking is disabled");
scx_error(sch, "invalid node %d", node);
scx_error(sch, "unavailable node %d", node);
scx_error(sch, "built-in idle tracking is disabled");
scx_error(sch, "select_cpu kfunc called cross-task on %s[%d]",
scx_error(sch, "called on a task not being operated on");