From patchwork Tue Apr 15 09:02:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jinliang Zheng X-Patchwork-Id: 14051726 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 054ACC369AB for ; Tue, 15 Apr 2025 09:02:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 055FE2800C3; Tue, 15 Apr 2025 05:02:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 004402800C2; Tue, 15 Apr 2025 05:02:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DBF052800C3; Tue, 15 Apr 2025 05:02:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id B8B972800C2 for ; Tue, 15 Apr 2025 05:02:37 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id BB39D121139 for ; Tue, 15 Apr 2025 09:02:38 +0000 (UTC) X-FDA: 83335687596.21.EE3404A Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by imf30.hostedemail.com (Postfix) with ESMTP id DFC038000D for ; Tue, 15 Apr 2025 09:02:36 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aUOLaQGt; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of alexjlzheng@gmail.com designates 209.85.215.172 as permitted sender) smtp.mailfrom=alexjlzheng@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744707756; a=rsa-sha256; cv=none; b=0r8y3jmetMNekYakCvqGxNWqr6KiefwJAskzV6IPDvej32W46G1iHO6Xy9u5ul1+B/FSnq vRyqJ2+7+iH6/OZ9/I7sas1IsOniCiLoXojaKESQahWtwsABseWV/akdx+CuYNPxvCFkGm fzZS+xsrVXZLo2MNrBrLFrq3dIxbGPA= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aUOLaQGt; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of alexjlzheng@gmail.com designates 209.85.215.172 as permitted sender) smtp.mailfrom=alexjlzheng@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744707756; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=dJDZbBMdv2ZAA+6dcm0km5N4IHnAcIL7BZj1NiKeJs8=; b=XZjQFm069WgWkpAZ3BUTiwCpa3QJUiW3ZGGES7GjcMsPQqmn5qGeTLNbxrUHrHIfrHRk/i /DcW32j7pjzSntNSGcEQvgMaKg0NZFbQu06JoZxEc+j4uZuCIMEFiSgS2OKhxyLVF1A/Ep zWQpmH5StV08cAKLucAcbBgmBV04f7A= Received: by mail-pg1-f172.google.com with SMTP id 41be03b00d2f7-af5085f7861so3338944a12.3 for ; Tue, 15 Apr 2025 02:02:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744707756; x=1745312556; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=dJDZbBMdv2ZAA+6dcm0km5N4IHnAcIL7BZj1NiKeJs8=; b=aUOLaQGt6l2PGhm8drUO53cT4baL4+TWx+9mWo9+hTqq0kDdsWf+o+me34j4W3gV9Z tsC7/3oRfXigy0ClsK2iP1MuknOBIkOqWknK+JkyU1pa3eHjnumol+pWZWdHzX8ljhga FlHgIiF6mW0T8GnWYtS//TaJMLpfM5dfoJVOz3z0paiOvO46FBgrp2ebKAsJGPa6ZlUK 9ho50AfKQESJy70Sdfsps7gh+vInLIbUQeE/6GnASjykf4MAJFgPJ7Ry+KuvTo9kuEwR urVGoMTFJ60Y9r+JyMh9lrbZ0ZTnIeMsfrC/VLBTwt0znhhVJ0QIb4e7KyMbNuhJ8MHf +NRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744707756; x=1745312556; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=dJDZbBMdv2ZAA+6dcm0km5N4IHnAcIL7BZj1NiKeJs8=; b=s/0Vs9t2RHuiNQnf6Qf6bkl1P8R8Ft3hfXiuemCD35D44F+UnMwuycthKN/omla+eE yCSdQ9y+7e2rViyIeQp/TmyMdknZmtQJz1ao2J58TO2OnrE5VqeRSE2VYrDiSiori1ww i4ALYSdB4AqFrbu3NsqwAPQP7KI8A8wjjxzVGSIBJd5b43pvZ2E7OFrUe7nuHuYxdqfL bPbKK2g8qYJym5EdgAs/KYfjGSLnTgpanorFiRne3NXORIx7FceRBstwiTJ381FS8Khz LxRMsoahHNbhOmzPgN0CXqXVEUXnWNFyw0qMBkTdzKUT8CxEC79RCWR3KMA16ZsiKn7w S/Hg== X-Forwarded-Encrypted: i=1; AJvYcCWXJMeOoB5A2PZVUTFzbzD7xdCF1YSY7waIvl7gpLXdKaqf2r8UOKBh3sJ3vmUlahRl3YFkxxGWkQ==@kvack.org X-Gm-Message-State: AOJu0YwAGBllXuS5E8UpUmuHcrhtKSV+T0coWXrqamcZtL/06+aMsyNy fsXKZQbG5MFxkPjTsUbgYMXwB6wGRaX0WKJuXfHbXpeRDMwa6qpy X-Gm-Gg: ASbGncsdgn8yZbvfX+CRA6iXavardR585gtfo7tXvKI43jBqF/56Lu8nkDvp72IQI8l vagOmaqpGM9P+1wdI4fBMbrJaKiF3cJOQnE8nip7KNmCnEAShbA4QCh4KW/GCm1B/AaSkBwp4tA JAOcDIEP8N/uoJIJNORjcBYktfH4Syp/cqAZPy8R0g6pgckVTtVVUjqsGqjsKqrRZ3gd7SI0lCh gBXrNkI9HMIsZaiaefVU3jSYWeWBtkYfFvEDQLrHnasTuJUZ/f5mP38DW2FhKkIfjXBxDEGrO+M TX/EDCtjX+5ZCBv8y6weGVCT4kZ6+LiGd7J/Oky0SwM7Sq7zByE= X-Google-Smtp-Source: AGHT+IEYjhNLxP37l8aYl1C4a7w6JsueacI5kZw35bhUqMjZzpBVZqyJDMJHUDXI3VVXAEqDHa7Rmg== X-Received: by 2002:a17:90b:5190:b0:2ee:f22a:61dd with SMTP id 98e67ed59e1d1-30823680c10mr18676118a91.32.1744707755652; Tue, 15 Apr 2025 02:02:35 -0700 (PDT) Received: from VM-16-38-fedora.. ([43.135.149.86]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22ac7ccc98csm112424215ad.253.2025.04.15.02.02.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 02:02:35 -0700 (PDT) From: alexjlzheng@gmail.com X-Google-Original-From: alexjlzheng@tencent.com To: willy@infradead.org, akpm@linux-foundation.org, andrea@betterlinux.com, fengguang.wu@intel.com Cc: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, mengensun@tencent.com, Jinliang Zheng , stable@vger.kernel.org Subject: [PATCH v2] mm: fix ratelimit_pages update error in dirty_ratio_handler() Date: Tue, 15 Apr 2025 17:02:32 +0800 Message-ID: <20250415090232.7544-1-alexjlzheng@tencent.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: DFC038000D X-Rspamd-Server: rspam04 X-Stat-Signature: pbzoukzuammp6zhko9uta6sonbzg5388 X-HE-Tag: 1744707756-168969 X-HE-Meta: U2FsdGVkX1/+FPfO4fjtaV8HoMtSHmNP/prvf5F6+h4hg1cmtH2NJ/cmwxDzfszC2RvRTqOd4PKtXodf296FqLiAlhqmsf07mmt47sHNQ2ajt3iBTKfxJNTe7eteq4QYihaYO+G3hASD4xUNh3+xZSEWM5WG2TAYmyPlTrBDr9KQvnr//+klfLPFkfakwQ0RK27sF8Rlj11rJTnCdj9rMZYx1gYh749WApozES7MGCFBWs3Lh4/46tbzo6fe2r0tzlvbkDSU7JXPfCeRyST/NB37YxzzBnkPrB/+uFDdWgL05qeuCCKW3E8QC8XAbXeGrSyjLZ32rK4IZHB47JIJUmVvvhuV/zHBWQqu+mXxP4wpAj4Kr4Hyl2E92XTSXQfPU/F0Ag2k1HxKtLNjPzQOMiqYPdVs3/cLIjLRSjDSlUzWkpftk8FGc24pUlgA3ZosvF8Knv1vd3pn57mQ6fqf7TtrNGGX+ZO0326yMvFTygWjU8nJ9o1A1Ozi95MCeVbMN4rsU//6GEKlDxRYq0KcCSoJLz/219mQWPGwHSAK2KLLH2kJ4Gz73y+HMgiZmwl288KTLPAlZiXjfFaem1uMMjmAsTJbMX2ivdXnB5KSpLCX0tg4UwNu7Y6PeQjmvRIcDcFTgyZrVyzGdiyQSewSp4gsHeKVnntX7XZPdzzds/LQsemQt4E1ybCVmdGvHxxqLi0yDyrAqOyxXxgel+kif/aYhaHd/Q9LVgbYKfcOr0SNQnyFwzOCCLtmTbKXRQIcR2l1G8cszYYnj0UjGVDPWWuN31aO3134T4mILbDh+7DQsjGqUzOXnCpEgMdE0t2Tvmn531JLZfmf2bDm83O5xsE6mA9w6KeUpFruUKhn6XmOxCvVSlEx0/DgS6MhJD+JyeAJZi8Vk5BwTxz7eIcspPisiLVS4YAi4Q8FQyp8rzW283AnTlFAMtkwf07jDoBR5TsCqJ7mrGfgf3r0xQ0 uDwVFmGV 58AyqNJGVYhykGOP/uB65QGlfyREhf7H1E4RydRUz0e8W9abgKLvmBWD2diwKB5969gjnVLQJIVn7M9pPGSs91csiZKSwrnu4/AgQOYXIxKAujzM7+e7I0emFQb5QV0SZErXGEuXmXEGNEvQZ98jQ1Z3KueB7a7K/KfdkpWki6W7cMjyO8xgc3IMdITsVkG0l7flt X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Jinliang Zheng In the dirty_ratio_handler() function, vm_dirty_bytes must be set to zero before calling writeback_set_ratelimit(), as global_dirty_limits() always prioritizes the value of vm_dirty_bytes. That causes ratelimit_pages to still use the value calculated based on vm_dirty_bytes, which is wrong now. Fixes: 9d823e8f6b1b ("writeback: per task dirty rate limit") Signed-off-by: Jinliang Zheng Reviewed-by: MengEn Sun Cc: stable@vger.kernel.org --- Changelog: v2: A more detailed description v1: https://lore.kernel.org/linux-fsdevel/20250415083542.6946-1-alexjlzheng@tencent.com/T/#u --- mm/page-writeback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/page-writeback.c b/mm/page-writeback.c index c81624bc3969..20e1d76f1eba 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -520,8 +520,8 @@ static int dirty_ratio_handler(const struct ctl_table *table, int write, void *b ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); if (ret == 0 && write && vm_dirty_ratio != old_ratio) { - writeback_set_ratelimit(); vm_dirty_bytes = 0; + writeback_set_ratelimit(); } return ret; }