Unverified Commit 02edb9f3 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!7810 net-memcg: Fix scope of sockmem pressure indicators

Merge Pull Request from: @ci-robot 
 
PR sync from: Chen Ridong <chenridong@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/ELW7EGK7MC7F7BGKEY3SZV2ENTGLDQHQ/ 
*** BLURB HERE ***

Abel Wu (1):
  net-memcg: Fix scope of sockmem pressure indicators


-- 
2.34.1
 
https://gitee.com/openeuler/kernel/issues/I9RB5N 
 
Link:https://gitee.com/openeuler/kernel/pulls/7810

 

Reviewed-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents 9ceb8d31 5377f2c0
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -337,6 +337,11 @@ struct mem_cgroup {
	atomic_long_t		memory_events[MEMCG_NR_MEMORY_EVENTS];
	atomic_long_t		memory_events_local[MEMCG_NR_MEMORY_EVENTS];

	/*
	 * Hint of reclaim pressure for socket memroy management. Note
	 * that this indicator should NOT be used in legacy cgroup mode
	 * where socket memory is accounted/charged separately.
	 */
	unsigned long		socket_pressure;

	/* Legacy tcp memory accounting */
@@ -1982,8 +1987,8 @@ void mem_cgroup_sk_alloc(struct sock *sk);
void mem_cgroup_sk_free(struct sock *sk);
static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg)
{
	if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && memcg->tcpmem_pressure)
		return true;
	if (!cgroup_subsys_on_dfl(memory_cgrp_subsys))
		return !!memcg->tcpmem_pressure;
	do {
		if (time_before(jiffies, READ_ONCE(memcg->socket_pressure)))
			return true;
+11 −1
Original line number Diff line number Diff line
@@ -240,7 +240,17 @@ static void vmpressure_work_fn(struct work_struct *work)
void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree,
		unsigned long scanned, unsigned long reclaimed)
{
	struct vmpressure *vmpr = memcg_to_vmpressure(memcg);
	struct vmpressure *vmpr;

	/*
	 * The in-kernel users only care about the reclaim efficiency
	 * for this @memcg rather than the whole subtree, and there
	 * isn't and won't be any in-kernel user in a legacy cgroup.
	 */
	if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && !tree)
		return;

	vmpr = memcg_to_vmpressure(memcg);

	/*
	 * Here we only want to account pressure that userland is able to