From nobody Thu Apr 2 00:09:22 2026 Received: from SHSQR01.spreadtrum.com (unknown [222.66.158.135]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B4D0C26158B for ; Tue, 10 Feb 2026 05:43:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=222.66.158.135 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770702229; cv=none; b=JF6krpCC9dBQP43dEMEnFg5TbHYirv14YfI11NL6zogeEGEBT6CwcjlcG8qtaTVWEctnaXsncZ9UGKmdcdft+hkbg7kC7rLU1w5NzYw2+/IM11rz0HbE+uR8lAAVo/nR1mmWoP7UwCmfEas7keO0EzN/tF2ncewluDB4UG2SYRk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770702229; c=relaxed/simple; bh=X5SQ7y/VOBJuLgmIieXk1CKuut8Yhf+hQthFC8Fa8LI=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=KzHQKuHWWpzPMOLp5oGCbJ8kEfFH/C7cXwfqTpb5Nk0fJh8JNFv/Y7td9IyuB13LzZOr2bswcZWtfkVlU70VPJkKOwbvc3X7D81ouUpJSIvFODCTdVt07zBgJsx9eELMvN6Yt76tm81ijMovA0uV6M4mQaU0h2c8k/oXAUVTO6E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=unisoc.com; spf=pass smtp.mailfrom=unisoc.com; dkim=pass (2048-bit key) header.d=unisoc.com header.i=@unisoc.com header.b=gfO9m+pc; arc=none smtp.client-ip=222.66.158.135 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=unisoc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=unisoc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=unisoc.com header.i=@unisoc.com header.b="gfO9m+pc" Received: from dlp.unisoc.com ([10.29.3.86]) by SHSQR01.spreadtrum.com with ESMTP id 61A5hPoq016481; Tue, 10 Feb 2026 13:43:25 +0800 (+08) (envelope-from zhaoyang.huang@unisoc.com) Received: from SHDLP.spreadtrum.com (BJMBX01.spreadtrum.com [10.0.64.7]) by dlp.unisoc.com (SkyGuard) with ESMTPS id 4f99T74nrwz2N3Tj4; Tue, 10 Feb 2026 13:43:07 +0800 (CST) Received: from bj03382pcu03.spreadtrum.com (10.0.73.40) by BJMBX01.spreadtrum.com (10.0.64.7) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Tue, 10 Feb 2026 13:43:21 +0800 From: "zhaoyang.huang" To: Andrew Morton , Yu Zhao , Michal Hocko , Rik van Riel , Shakeel Butt , Roman Gushchin , Johannes Weiner , , , Zhaoyang Huang , Subject: [RESEND PATCH] mm: bail out from partial cgroup_reclaim inside shrink_lruvec Date: Tue, 10 Feb 2026 13:43:12 +0800 Message-ID: <20260210054312.303129-1-zhaoyang.huang@unisoc.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SHCAS01.spreadtrum.com (10.0.1.201) To BJMBX01.spreadtrum.com (10.0.64.7) X-MAIL: SHSQR01.spreadtrum.com 61A5hPoq016481 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unisoc.com; s=default; t=1770702222; bh=WXTUlQnumUaygJxbhSnJT0+rlcSCmcEIeUJIsJDTIrY=; h=From:To:Subject:Date; b=gfO9m+pcK41g/rbteCxRu298IfMnjgD2qoWYvn76QpjoQr0DWWjiQxTRJzVVYJNhG rg4oVKnOM5kfubvvEsgMc9NVhOCU3U2biDEf84+wR0s/98ccA3YK+ONx2b1kCng58K UzkR+Q5cr+ZI3gHPiyyC03Ss1fBNEJ//k7Q9YemcV/rK++cv9V2ul8zfdK6reOC6wb 5GlUrIjPFqK1KhCQRXYOrWiryDVe+fXf+1IX5p3bTgptzvKzylo1PfhSWdU9nAC2gL wYb4CFu/PhVU17ooRWLLJydKp+JnkQFW5V02tBaLstYmcleWGLANj2nPTWz3lPtS/P C8Lcjx/09znvQ== Content-Type: text/plain; charset="utf-8" From: Zhaoyang Huang Nowadays, ANDROID system replaces madivse with memory.reclaim to implement user space memory management which desires to reclaim a certain amount of memcg's memory. However, oversized reclaiming and high latency are observed as there is no limitation over nr_reclaimed inside try_to_shrink_lruvec when MGLRU enabled. Besides, this could also affect all none root_reclaim such as reclaim_high etc. The commit 'b82b530740b9' ("mm: vmscan: restore incremental cgroup iteration") introduces sc->memcg_full_walk to limit the walk range of mem_cgroup_iter. This commit would like to make single memcg's scanning more precised by judging if nr_reclaimed reached when sc->memcg_full_walk not set. Signed-off-by: Zhaoyang Huang --- mm/vmscan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 670fe9fae5ba..03bda1094621 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -4832,8 +4832,8 @@ static bool should_abort_scan(struct lruvec *lruvec, = struct scan_control *sc) int i; enum zone_watermarks mark; =20 - /* don't abort memcg reclaim to ensure fairness */ - if (!root_reclaim(sc)) + /* don't abort full walk memcg reclaim to ensure fairness */ + if (!root_reclaim(sc) && sc->memcg_full_walk) return false; =20 if (sc->nr_reclaimed >=3D max(sc->nr_to_reclaim, compact_gap(sc->order))) --=20 2.25.1