Unverified Commit 1f57ba4e authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!3431 memcg reclaim and cgroup kill

Merge Pull Request from: @ci-robot 
 
PR sync from: Lu Jialin <lujialin4@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/T2F47RF5VERYYDI5I4XLQKIEF3BCFYMK/ 
v7->v6:
Just move CONFIG_CGROUP_VI_KILL below CONFIG_SOCK_CGROUP_DATA in
openeuler_defconfig, which keeps the order consistent with Kconfig.

Lu Jialin (7):
  cgroup: Export cgroup.kill from cgroupv2 to cgroupv1
  memcg: Export memcg.{min/low/high} from cgroupv2 to cgroupv1
  memcg: Export memory.events{local} from cgroupv2 to cgroupv1
  memcg: enable memcg async reclaim
  memcg: export high_async_ratio to userland
  memcg: introduce per-memcg reclaim interface
  config: enable CONFIG_MEMCG_V1_RECLAIM and CONFIG_CGROUP_V1_KILL


-- 
2.34.1
 
https://gitee.com/openeuler/kernel/issues/I8JVN0 
 
Link:https://gitee.com/openeuler/kernel/pulls/3431

 

Reviewed-by: default avatarLiu Chao <liuchao173@huawei.com>
Reviewed-by: default avatarZhang Jianhua <chris.zjh@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parents 80971b57 a2d8c7a8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -157,6 +157,7 @@ CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
# CONFIG_CGROUP_FAVOR_DYNMODS is not set
CONFIG_MEMCG=y
CONFIG_MEMCG_V1_RECLAIM=y
CONFIG_MEMCG_KMEM=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
@@ -179,6 +180,7 @@ CONFIG_CGROUP_BPF=y
# CONFIG_CGROUP_MISC is not set
# CONFIG_CGROUP_DEBUG is not set
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_CGROUP_V1_KILL=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_TIME_NS=y
+2 −0
Original line number Diff line number Diff line
@@ -179,6 +179,7 @@ CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
# CONFIG_CGROUP_FAVOR_DYNMODS is not set
CONFIG_MEMCG=y
CONFIG_MEMCG_V1_RECLAIM=y
CONFIG_MEMCG_KMEM=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
@@ -201,6 +202,7 @@ CONFIG_CGROUP_BPF=y
# CONFIG_CGROUP_MISC is not set
# CONFIG_CGROUP_DEBUG is not set
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_CGROUP_V1_KILL=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_TIME_NS=y
+7 −1
Original line number Diff line number Diff line
@@ -333,6 +333,11 @@ struct mem_cgroup {
	struct lru_gen_mm_list mm_list;
#endif

#ifdef CONFIG_MEMCG_V1_RECLAIM
	int high_async_ratio;
	bool high_async_reclaim;
#endif

	struct mem_cgroup_per_node *nodeinfo[];
};

@@ -1129,9 +1134,10 @@ static inline void memcg_memory_event(struct mem_cgroup *memcg,
			cgroup_file_notify(&memcg->swap_events_file);
		else
			cgroup_file_notify(&memcg->events_file);

#ifndef CONFIG_MEMCG_V1_RECLAIM
		if (!cgroup_subsys_on_dfl(memory_cgrp_subsys))
			break;
#endif
		if (cgrp_dfl_root.flags & CGRP_ROOT_MEMORY_LOCAL_EVENTS)
			break;
	} while ((memcg = parent_mem_cgroup(memcg)) &&
+10 −0
Original line number Diff line number Diff line
@@ -944,6 +944,11 @@ config MEMCG
	help
	  Provides control over the memory footprint of tasks in a cgroup.

config MEMCG_V1_RECLAIM
	bool "Enable Per Memory Cgroup Qos Reclaim in Cgroup V1"
	depends on MEMCG
	default n

config MEMCG_KMEM
	bool
	depends on MEMCG
@@ -1187,6 +1192,11 @@ config SOCK_CGROUP_DATA
	bool
	default n

config CGROUP_V1_KILL
	bool "Kill All Tasks In Cgroup V1"
	default n
	depends on CGROUPS

endif # CGROUPS

menuconfig NAMESPACES
+3 −0
Original line number Diff line number Diff line
@@ -264,6 +264,9 @@ int cgroup_show_path(struct seq_file *sf, struct kernfs_node *kf_node,
int __cgroup_task_count(const struct cgroup *cgrp);
int cgroup_task_count(const struct cgroup *cgrp);

ssize_t cgroup_kill_write(struct kernfs_open_file *of, char *buf, size_t nbytes,
			  loff_t off);

/*
 * rstat.c
 */
Loading