Unverified Commit 848c6bb7 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!3381 cgroupv1 cgroup writeback enable

Merge Pull Request from: @chenridong 
 
cgroupv1 cgroup writeback enable
related issue:
https://gitee.com/openeuler/kernel/issues/I8LY4S 
 
Link:https://gitee.com/openeuler/kernel/pulls/3381

 

Reviewed-by: default avatarZhang Jianhua <chris.zjh@huawei.com>
Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: default avatarzhangyi (F) <yi.zhang@huawei.com>
Reviewed-by: default avatarLiu Chao <liuchao173@huawei.com>
Reviewed-by: default avatarLu Jialin <lujialin4@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parents d9b08051 d2d4cf91
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -161,6 +161,7 @@ CONFIG_MEMCG_V1_RECLAIM=y
CONFIG_MEMCG_KMEM=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_V1_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
CONFIG_QOS_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
+1 −0
Original line number Diff line number Diff line
@@ -183,6 +183,7 @@ CONFIG_MEMCG_V1_RECLAIM=y
CONFIG_MEMCG_KMEM=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_V1_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
CONFIG_QOS_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
+3 −0
Original line number Diff line number Diff line
@@ -1363,6 +1363,9 @@ blkcg_css_alloc(struct cgroup_subsys_state *parent_css)
	INIT_HLIST_HEAD(&blkcg->blkg_list);
#ifdef CONFIG_CGROUP_WRITEBACK
	INIT_LIST_HEAD(&blkcg->cgwb_list);
#endif
#ifdef CONFIG_CGROUP_V1_WRITEBACK
	INIT_LIST_HEAD(&blkcg->memcg_list);
#endif
	list_add_tail(&blkcg->all_blkcgs_node, &all_blkcgs);

+3 −0
Original line number Diff line number Diff line
@@ -114,6 +114,9 @@ struct blkcg {
#ifdef CONFIG_CGROUP_WRITEBACK
	struct list_head		cgwb_list;
#endif
#ifdef CONFIG_CGROUP_V1_WRITEBACK
	struct list_head		memcg_list;
#endif
};

static inline struct blkcg *css_to_blkcg(struct cgroup_subsys_state *css)
+25 −4
Original line number Diff line number Diff line
@@ -149,6 +149,26 @@ static inline bool mapping_can_writeback(struct address_space *mapping)
	return inode_to_bdi(mapping->host)->capabilities & BDI_CAP_WRITEBACK;
}

#ifdef CONFIG_CGROUP_V1_WRITEBACK
void wb_kill_memcg_blkcg(struct cgroup_subsys_state *css);
void wb_attach_memcg_to_blkcg(struct cgroup_subsys_state *memcg_css,
			      struct cgroup_subsys_state *blkcg_css);
bool cgroup1_writeback_enabled(void);
#else
static inline void wb_kill_memcg_blkcg(struct cgroup_subsys_state *css)
{
}
static inline void
wb_attach_memcg_to_blkcg(struct cgroup_subsys_state *memcg_css,
			 struct cgroup_subsys_state *blkcg_css)
{
}
static inline bool cgroup1_writeback_enabled(void)
{
	return false;
}
#endif /* CONFIG_CGROUP_V1_WRITEBACK */

#ifdef CONFIG_CGROUP_WRITEBACK

struct bdi_writeback *wb_get_lookup(struct backing_dev_info *bdi,
@@ -174,8 +194,9 @@ static inline bool inode_cgwb_enabled(struct inode *inode)
{
	struct backing_dev_info *bdi = inode_to_bdi(inode);

	return cgroup_subsys_on_dfl(memory_cgrp_subsys) &&
		cgroup_subsys_on_dfl(io_cgrp_subsys) &&
	return ((cgroup_subsys_on_dfl(memory_cgrp_subsys) &&
	       cgroup_subsys_on_dfl(io_cgrp_subsys)) ||
	       cgroup1_writeback_enabled()) &&
	       (bdi->capabilities & BDI_CAP_WRITEBACK) &&
	       (inode->i_sb->s_iflags & SB_I_CGROUPWB);
}
Loading