// SPDX-License-Identifier: GPL-2.0-only /* * kernel/sched/cpudeadline.c * * Global CPU deadline management * * Author: Juri Lelli <[email protected]> */ static inline int parent(int i) { … } static inline int left_child(int i) { … } static inline int right_child(int i) { … } static void cpudl_heapify_down(struct cpudl *cp, int idx) { … } static void cpudl_heapify_up(struct cpudl *cp, int idx) { … } static void cpudl_heapify(struct cpudl *cp, int idx) { … } static inline int cpudl_maximum(struct cpudl *cp) { … } /* * cpudl_find - find the best (later-dl) CPU in the system * @cp: the cpudl max-heap context * @p: the task * @later_mask: a mask to fill in with the selected CPUs (or NULL) * * Returns: int - CPUs were found */ int cpudl_find(struct cpudl *cp, struct task_struct *p, struct cpumask *later_mask) { … } /* * cpudl_clear - remove a CPU from the cpudl max-heap * @cp: the cpudl max-heap context * @cpu: the target CPU * * Notes: assumes cpu_rq(cpu)->lock is locked * * Returns: (void) */ void cpudl_clear(struct cpudl *cp, int cpu) { … } /* * cpudl_set - update the cpudl max-heap * @cp: the cpudl max-heap context * @cpu: the target CPU * @dl: the new earliest deadline for this CPU * * Notes: assumes cpu_rq(cpu)->lock is locked * * Returns: (void) */ void cpudl_set(struct cpudl *cp, int cpu, u64 dl) { … } /* * cpudl_set_freecpu - Set the cpudl.free_cpus * @cp: the cpudl max-heap context * @cpu: rd attached CPU */ void cpudl_set_freecpu(struct cpudl *cp, int cpu) { … } /* * cpudl_clear_freecpu - Clear the cpudl.free_cpus * @cp: the cpudl max-heap context * @cpu: rd attached CPU */ void cpudl_clear_freecpu(struct cpudl *cp, int cpu) { … } /* * cpudl_init - initialize the cpudl structure * @cp: the cpudl max-heap context */ int cpudl_init(struct cpudl *cp) { … } /* * cpudl_cleanup - clean up the cpudl structure * @cp: the cpudl max-heap context */ void cpudl_cleanup(struct cpudl *cp) { … }