tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 2a9b96eb97cfd6f68e431cb614cb0b75b127d783
commit: abfd8691d951fb037506e1ee52ed39abee8430fa [2610/2610] etmem: add swapcache reclaim to etmem
config: x86_64-randconfig-161-20241231 (https://download.01.org/0day-ci/archive/20241231/202412311538.MIuGFM8n-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412311538.MIuGFM8n-lkp@intel.com/
smatch warnings:
mm/vmscan.c:4737 get_swapcache_reclaim_num() warn: unsigned 'swapcache_watermark[0]' is never less than zero.
vim +4737 mm/vmscan.c
4733
4734 static unsigned long get_swapcache_reclaim_num(unsigned long *swapcache_watermark)
4735 {
4736 return total_swapcache_pages() >
> 4737 swapcache_watermark[ETMEM_SWAPCACHE_WMARK_LOW] ?
4738 (total_swapcache_pages() - swapcache_watermark[ETMEM_SWAPCACHE_WMARK_LOW]) : 0;
4739 }
4740
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
hulk inclusion
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBEBAG
--------------------------------
The task_rq selection of dynamic affinity use cpu capacity to determine
select_cpus range. When realtime tasks are running on the cpu all the time,
cfs tasks and the thread of softirq is suppressed, and the cpu capacity is
not updated in time. As a result, the select_cpus range is always selected
for preferred_cpus. then cfs task will never be able to run because
realtime tasks has been running.
Therefore, if realtime tasks is running during the task_rq selection of
dynamic affinity, the cpu capacity should be calculated to solve such
a problem.
Fixes: 70a232a564cf ("sched: Adjust wakeup cpu range according CPU util dynamicly")
Signed-off-by: He Yujie <coka.heyujie(a)huawei.com>
---
kernel/sched/fair.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 63f4344ac344..4a357dce540c 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -7226,6 +7226,19 @@ static inline bool prefer_cpus_valid(struct task_struct *p)
cpumask_subset(prefer_cpus, &p->cpus_allowed);
}
+static unsigned long scale_rt_capacity(struct sched_domain *sd, int cpu);
+
+static inline unsigned long calc_cpu_capacity(int cpu)
+{
+ unsigned long capacity;
+
+ capacity = scale_rt_capacity(NULL, cpu);
+ if (!capacity)
+ capacity = 1;
+
+ return capacity;
+}
+
/*
* set_task_select_cpus: select the cpu range for task
* @p: the task whose available cpu range will to set
@@ -7288,7 +7301,11 @@ static void set_task_select_cpus(struct task_struct *p, int *idlest_cpu,
}
util_avg_sum += tg->se[cpu]->avg.util_avg;
- tg_capacity += capacity_of(cpu);
+
+ if (cpu_rq(cpu)->rt.rt_nr_running)
+ tg_capacity += calc_cpu_capacity(cpu);
+ else
+ tg_capacity += capacity_of(cpu);
}
rcu_read_unlock();
--
2.34.1
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 908c8608d2c0fcf6f49b1f48f074515c42474946
commit: c55fa11d134b40dbe1a4a5512a7fe43497cb6d5e [2612/2612] fscache: limit fscache_object_max_active to avoid blocking
config: x86_64-buildonly-randconfig-002-20241231 (https://download.01.org/0day-ci/archive/20241231/202412311354.iggKIx0H-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241231/202412311354.iggKIx0H-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412311354.iggKIx0H-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> fs/fscache/main.c:52:21: warning: 'fscache_min_op_max_active' defined but not used [-Wunused-variable]
52 | static unsigned int fscache_min_op_max_active = FSCACHE_MIN_OBJECT_MAX_ACTIVE / 2;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> fs/fscache/main.c:51:21: warning: 'fscache_min_object_max_active' defined but not used [-Wunused-variable]
51 | static unsigned int fscache_min_object_max_active = FSCACHE_MIN_OBJECT_MAX_ACTIVE;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/fscache_min_op_max_active +52 fs/fscache/main.c
46
47 /* these values serve as lower bounds, will be adjusted in fscache_init() */
48 #define FSCACHE_MIN_OBJECT_MAX_ACTIVE 4
49 static unsigned int fscache_object_max_active = FSCACHE_MIN_OBJECT_MAX_ACTIVE;
50 static unsigned int fscache_op_max_active = FSCACHE_MIN_OBJECT_MAX_ACTIVE / 2;
> 51 static unsigned int fscache_min_object_max_active = FSCACHE_MIN_OBJECT_MAX_ACTIVE;
> 52 static unsigned int fscache_min_op_max_active = FSCACHE_MIN_OBJECT_MAX_ACTIVE / 2;
53
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki