All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched: Take thermal pressure into account when determine rt fits capacity
@ 2022-04-07  5:19 Xuewen Yan
  2022-04-11  8:21 ` Dietmar Eggemann
  2022-04-20 13:51 ` Qais Yousef
  0 siblings, 2 replies; 44+ messages in thread
From: Xuewen Yan @ 2022-04-07  5:19 UTC (permalink / raw)
  To: dietmar.eggemann, lukasz.luba
  Cc: rafael, viresh.kumar, mingo, peterz, vincent.guittot, rostedt,
	linux-kernel, di.shen, xuewen.yan94

There are cases when the cpu max capacity might be reduced due to thermal.
Take into the thermal pressure into account when judge whether the rt task
fits the cpu. And when schedutil govnor get cpu util, the thermal pressure
also should be considered.

Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com>
---
 kernel/sched/cpufreq_schedutil.c | 1 +
 kernel/sched/rt.c                | 1 +
 2 files changed, 2 insertions(+)

diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
index 3dbf351d12d5..285ad51caf0f 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -159,6 +159,7 @@ static void sugov_get_util(struct sugov_cpu *sg_cpu)
 	struct rq *rq = cpu_rq(sg_cpu->cpu);
 	unsigned long max = arch_scale_cpu_capacity(sg_cpu->cpu);
 
+	max -= arch_scale_thermal_pressure(sg_cpu->cpu);
 	sg_cpu->max = max;
 	sg_cpu->bw_dl = cpu_bw_dl(rq);
 	sg_cpu->util = effective_cpu_util(sg_cpu->cpu, cpu_util_cfs(sg_cpu->cpu), max,
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index a32c46889af8..d9982ebd4821 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -466,6 +466,7 @@ static inline bool rt_task_fits_capacity(struct task_struct *p, int cpu)
 	max_cap = uclamp_eff_value(p, UCLAMP_MAX);
 
 	cpu_cap = capacity_orig_of(cpu);
+	cpu_cap -= arch_scale_thermal_pressure(cpu);
 
 	return cpu_cap >= min(min_cap, max_cap);
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 44+ messages in thread
* Re: [PATCH] sched/rt: Support multi-criterion fitness search for
@ 2022-05-16 17:04 kernel test robot
  0 siblings, 0 replies; 44+ messages in thread
From: kernel test robot @ 2022-05-16 17:04 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 15622 bytes --]

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
In-Reply-To: <20220514235513.jm7ul2y6uddj6eh2@airbuntu>
References: <20220514235513.jm7ul2y6uddj6eh2@airbuntu>
TO: Qais Yousef <qais.yousef@arm.com>
TO: Xuewen Yan <xuewen.yan94@gmail.com>
CC: Lukasz Luba <lukasz.luba@arm.com>
CC: dietmar.eggemann(a)arm.com
CC: rafael(a)kernel.org
CC: viresh.kumar(a)linaro.org
CC: mingo(a)redhat.com
CC: peterz(a)infradead.org
CC: vincent.guittot(a)linaro.org
CC: rostedt(a)goodmis.org
CC: linux-kernel(a)vger.kernel.org
CC: di.shen(a)unisoc.com
CC: "王科 (Ke Wang)" <Ke.Wang@unisoc.com>

Hi Qais,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tip/sched/core]
[also build test WARNING on v5.18-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Qais-Yousef/sched-rt-Support-multi-criterion-fitness-search-for/20220515-075732
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 734387ec2f9d77b00276042b1fa7c95f48ee879d
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: x86_64-randconfig-m031-20220516 (https://download.01.org/0day-ci/archive/20220517/202205170040.Eh9wjHXf-lkp(a)intel.com/config)
compiler: gcc-11 (Debian 11.2.0-20) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
kernel/sched/cpupri.c:157 cpupri_find_fitness() warn: we never enter this loop
kernel/sched/rt.c:2509 init_sched_rt_fitness_mask() warn: we never enter this loop

vim +157 kernel/sched/cpupri.c

a1bd02e1f28b193 kernel/sched/cpupri.c Qais Yousef     2020-03-02  125  
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  126  /**
a1bd02e1f28b193 kernel/sched/cpupri.c Qais Yousef     2020-03-02  127   * cpupri_find_fitness - find the best (lowest-pri) CPU in the system
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  128   * @cp: The cpupri context
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  129   * @p: The task
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  130   * @lowest_mask: A mask to fill in with selected CPUs (or NULL)
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  131   * @fitness_fn: A pointer to a function to do custom checks whether the CPU
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  132   *              fits a specific criteria so that we only return those CPUs.
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  133   *
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  134   * Note: This function returns the recommended CPUs as calculated during the
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  135   * current invocation.  By the time the call returns, the CPUs may have in
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  136   * fact changed priorities any number of times.  While not ideal, it is not
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  137   * an issue of correctness since the normal rebalancer logic will correct
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  138   * any discrepancies created by racing against the uncertainty of the current
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  139   * priority configuration.
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  140   *
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  141   * Return: (int)bool - CPUs were found
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  142   */
a1bd02e1f28b193 kernel/sched/cpupri.c Qais Yousef     2020-03-02  143  int cpupri_find_fitness(struct cpupri *cp, struct task_struct *p,
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  144  		struct cpumask *lowest_mask,
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  145  		cpumask_var_t fitness_mask[], fitness_fn_t fitness_fn[])
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  146  {
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  147  	int task_pri = convert_prio(p->prio);
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  148  	bool fallback_found[NUM_FITNESS_FN];
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  149  	int idx, cpu, fn_idx;
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  150  
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  151  	BUG_ON(task_pri >= CPUPRI_NR_PRIORITIES);
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  152  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  153  	if (NUM_FITNESS_FN && fitness_fn) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  154  		/*
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  155  		 * Clear the masks so that we can save a fallback hit in them
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  156  		 */
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15 @157  		for (fn_idx = 0; fn_idx < NUM_FITNESS_FN; fn_idx++) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  158  			cpumask_clear(fitness_mask[fn_idx]);
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  159  			fallback_found[fn_idx] = false;
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  160  		}
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  161  	}
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  162  
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  163  	for (idx = 0; idx < task_pri; idx++) {
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  164  
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  165  		if (!__cpupri_find(cp, p, lowest_mask, idx))
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  166  			continue;
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  167  
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  168  		if (!lowest_mask || !fitness_fn)
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  169  			return 1;
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  170  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  171  		/*
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  172  		 * We got a hit, save in our fallback masks that are empty.
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  173  		 *
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  174  		 * Note that we use fitness_mask[0] to save the fallback for
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  175  		 * when all fitness_fns fail to find a suitable CPU.
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  176  		 *
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  177  		 * We use lowest_mask to store the results of fitness_fn[0]
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  178  		 * directly.
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  179  		 */
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  180  		if (!fallback_found[0]) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  181  				cpumask_copy(fitness_mask[0], lowest_mask);
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  182  				fallback_found[0] = true;
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  183  		}
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  184  		for (fn_idx = 1; fn_idx < NUM_FITNESS_FN; fn_idx++) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  185  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  186  			/*
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  187  			 * We just need one valid fallback at highest level
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  188  			 * (smallest fn_idx). We don't care about checking for
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  189  			 * fallback beyond this once we found one.
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  190  			 */
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  191  			if (fallback_found[fn_idx])
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  192  				break;
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  193  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  194  			cpumask_copy(fitness_mask[fn_idx], lowest_mask);
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  195  		}
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  196  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  197  		/*
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  198  		 * fintness_fn[0] hit always terminates the search immediately,
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  199  		 * so do that first.
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  200  		 */
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  201  		for_each_cpu(cpu, lowest_mask) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  202  			if (!fitness_fn[0](p, cpu))
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  203  				cpumask_clear_cpu(cpu, lowest_mask);
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  204  		}
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  205  
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  206  		/*
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  207  		 * Stop searching as soon as fitness_fn[0] is happy with the
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  208  		 * results.
804d402fb6f6487 kernel/sched/cpupri.c Qais Yousef     2019-10-09  209  		 */
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  210  		if (!cpumask_empty(lowest_mask))
6e0534f278199f1 kernel/sched_cpupri.c Gregory Haskins 2008-05-12  211  			return 1;
6e0534f278199f1 kernel/sched_cpupri.c Gregory Haskins 2008-05-12  212  
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  213  		/*
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  214  		 * Find a fallback CPU for the other fitness_fns.
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  215  		 *
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  216  		 * Only do this once. As soon as we get a valid fallback mask,
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  217  		 * we'll remember it so that when fitness_fn[0] fails for all
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  218  		 * priorities, we'll return this fallback mask.
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  219  		 *
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  220  		 * Remember that we use fitnss_mask[0] to store our fallback
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  221  		 * results for when all fitness_fns fail.
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  222  		 */
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  223  		for (fn_idx = 1; fn_idx < NUM_FITNESS_FN; fn_idx++) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  224  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  225  			/*
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  226  			 * We just need one valid fallback at highest level
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  227  			 * (smallest fn_idx). We don't care about checking for
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  228  			 * fallback beyond this once we found one.
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  229  			 */
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  230  			if (fallback_found[fn_idx])
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  231  				break;
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  232  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  233  			for_each_cpu(cpu, fitness_mask[fn_idx]) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  234  				if (!fitness_fn[fn_idx](p, cpu))
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  235  					cpumask_clear_cpu(cpu, fitness_mask[fn_idx]);
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  236  			}
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  237  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  238  			if (!cpumask_empty(fitness_mask[fn_idx]))
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  239  				fallback_found[fn_idx] = true;
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  240  		}
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  241  	}
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  242  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  243  	for (fn_idx = 1; fn_idx < NUM_FITNESS_FN; fn_idx++) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  244  		if (fallback_found[fn_idx]) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  245  			cpumask_copy(lowest_mask, fitness_mask[fn_idx]);
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  246  			return 1;
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  247  		}
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  248  	}
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  249  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  250  	/*
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  251  	 * No fallback from any of the fitness_fns, fallback to priority based
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  252  	 * lowest_mask which we store@fitness_mask[0].
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  253  	 */
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  254  
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  255  	if (fallback_found[0]) {
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  256  		cpumask_copy(lowest_mask, fitness_mask[0]);
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  257  		return 1;
0eee64011b1d437 kernel/sched/cpupri.c Qais Yousef     2022-05-15  258  	}
d9cb236b9429044 kernel/sched/cpupri.c Qais Yousef     2020-03-02  259  
6e0534f278199f1 kernel/sched_cpupri.c Gregory Haskins 2008-05-12  260  	return 0;
6e0534f278199f1 kernel/sched_cpupri.c Gregory Haskins 2008-05-12  261  }
6e0534f278199f1 kernel/sched_cpupri.c Gregory Haskins 2008-05-12  262  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2022-06-15 13:54 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-07  5:19 [PATCH] sched: Take thermal pressure into account when determine rt fits capacity Xuewen Yan
2022-04-11  8:21 ` Dietmar Eggemann
2022-04-11  8:52   ` Xuewen Yan
2022-04-11 14:07     ` Dietmar Eggemann
2022-04-13 13:25       ` Lukasz Luba
2022-04-16  2:47         ` Xuewen Yan
2022-04-19  7:14           ` Vincent Guittot
2022-04-19 12:01             ` Lukasz Luba
2022-04-19 12:51               ` Vincent Guittot
2022-04-19 14:13                 ` Lukasz Luba
2022-04-21  8:29                   ` Vincent Guittot
2022-04-21 10:57                     ` Lukasz Luba
2022-04-26  7:39                       ` Vincent Guittot
2022-04-29  9:27                         ` Lukasz Luba
2022-04-20 13:51 ` Qais Yousef
2022-04-21  8:07   ` Xuewen Yan
2022-04-21 16:15     ` Qais Yousef
2022-04-25  1:31       ` Xuewen Yan
2022-04-25 16:12         ` Qais Yousef
2022-04-26  2:07           ` Xuewen Yan
2022-04-26  8:09             ` Vincent Guittot
2022-04-26  9:30               ` Qais Yousef
2022-04-26 10:06                 ` Vincent Guittot
2022-04-26 13:06                   ` Qais Yousef
2022-04-26  9:21             ` Qais Yousef
2022-04-27  1:38               ` Xuewen Yan
2022-04-27 10:58                 ` Qais Yousef
2022-05-01  3:20                   ` Xuewen Yan
2022-05-03 14:43                     ` Qais Yousef
2022-05-09  2:29                       ` Xuewen Yan
2022-05-10 14:56                         ` Qais Yousef
2022-05-10 17:44                           ` Lukasz Luba
2022-05-10 18:44                             ` Qais Yousef
2022-05-10 22:03                               ` Lukasz Luba
2022-05-14 15:01                                 ` Xuewen Yan
2022-05-14 23:55                                   ` Qais Yousef
2022-05-15  0:53                                     ` [PATCH] sched/rt: Support multi-criterion fitness search for kernel test robot
2022-05-15  1:43                                     ` kernel test robot
2022-05-19 14:16                                     ` [sched] 0eee64011b: canonical_address#:#[##] kernel test robot
2022-05-19 14:16                                       ` kernel test robot
2022-06-15 10:13                                     ` [PATCH] sched: Take thermal pressure into account when determine rt fits capacity Qais Yousef
2022-06-15 11:17                                       ` Xuewen Yan
2022-06-15 13:54                                         ` Qais Yousef
2022-05-16 17:04 [PATCH] sched/rt: Support multi-criterion fitness search for kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.