未验证 提交 785b3c12 编写于 作者: O openeuler-ci-bot 提交者: Gitee

!582 mm: oom: move memcg_print_bad_task() out of mem_cgroup_scan_tasks()

Merge Pull Request from: @void0red 
 
#I6NYW4

Fix a type cast bug in mm/oom 
 
Link:https://gitee.com/openeuler/kernel/pulls/582 

Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com> 
Signed-off-by: Jialin Zhang <zhangjialin11@huawei.com> 
......@@ -413,7 +413,7 @@ DECLARE_STATIC_KEY_FALSE(memcg_qos_stat_key);
bool memcg_low_priority_scan_tasks(int (*)(struct task_struct *, void *),
void *);
void memcg_print_bad_task(void *arg, int ret);
void memcg_print_bad_task(struct oom_control *oc);
extern int sysctl_memcg_qos_handler(struct ctl_table *table,
int write, void __user *buffer, size_t *length, loff_t *ppos);
#endif
......
......@@ -1214,9 +1214,6 @@ int mem_cgroup_scan_tasks(struct mem_cgroup *memcg,
break;
}
}
#ifdef CONFIG_MEMCG_QOS
memcg_print_bad_task(arg, ret);
#endif
return ret;
}
......@@ -4004,14 +4001,12 @@ bool memcg_low_priority_scan_tasks(int (*fn)(struct task_struct *, void *),
return oc->chosen ? true : false;
}
void memcg_print_bad_task(void *arg, int ret)
void memcg_print_bad_task(struct oom_control *oc)
{
struct oom_control *oc = arg;
if (!static_branch_likely(&memcg_qos_stat_key))
return;
if (!ret && oc->chosen) {
if (oc->chosen) {
struct mem_cgroup *memcg;
memcg = mem_cgroup_from_task(oc->chosen);
......@@ -4042,6 +4037,13 @@ int sysctl_memcg_qos_handler(struct ctl_table *table, int write,
return ret;
}
#else
void memcg_print_bad_task(struct oom_control *oc)
{
}
#endif
#ifdef CONFIG_NUMA
......
......@@ -408,9 +408,10 @@ static void select_bad_process(struct oom_control *oc)
{
oc->chosen_points = LONG_MIN;
if (is_memcg_oom(oc))
mem_cgroup_scan_tasks(oc->memcg, oom_evaluate_task, oc);
else {
if (is_memcg_oom(oc)) {
if (!mem_cgroup_scan_tasks(oc->memcg, oom_evaluate_task, oc))
memcg_print_bad_task(oc);
} else {
struct task_struct *p;
#ifdef CONFIG_MEMCG_QOS
......@@ -473,9 +474,10 @@ static void dump_tasks(struct oom_control *oc)
pr_info("Tasks state (memory values in pages):\n");
pr_info("[ pid ] uid tgid total_vm rss pgtables_bytes swapents oom_score_adj name\n");
if (is_memcg_oom(oc))
mem_cgroup_scan_tasks(oc->memcg, dump_task, oc);
else {
if (is_memcg_oom(oc)) {
if (!mem_cgroup_scan_tasks(oc->memcg, dump_task, oc))
memcg_print_bad_task(oc);
} else {
struct task_struct *p;
rcu_read_lock();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册