From mboxrd@z Thu Jan 1 00:00:00 1970 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 299A9C369B1 for ; Wed, 16 Apr 2025 04:31:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F3283280019; Wed, 16 Apr 2025 00:31:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EBD25280018; Wed, 16 Apr 2025 00:31:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D32DD280019; Wed, 16 Apr 2025 00:31:52 -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 B1985280018 for ; Wed, 16 Apr 2025 00:31:52 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CFE88B287A for ; Wed, 16 Apr 2025 04:31:52 +0000 (UTC) X-FDA: 83338634064.17.8042D94 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by imf02.hostedemail.com (Postfix) with ESMTP id BD65E80004 for ; Wed, 16 Apr 2025 04:31:50 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="B/oscQ45"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of alexjlzheng@gmail.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=alexjlzheng@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744777910; a=rsa-sha256; cv=none; b=ZAFFk7K2HtDpW/A0HqF+RTkHDAPMmP+sYQvgzD3NWN1JdGNQXaOazzKTXERzwcg+aoxm6Z zsyZUlLGYKDMD8HojNbhMRlEDYvMBxsRHVyYOpDenDj0vkOc3ZbQGh4AYGPk1SVzdDfWFI z6pY9wQ4WFdqXhtUfQ2IGNBnZDpelR0= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="B/oscQ45"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of alexjlzheng@gmail.com designates 209.85.210.178 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=1744777910; 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:in-reply-to:references:references:dkim-signature; bh=URvhPy/oV2vL/75NuZBpcrmjoqkq3rW0UHgJpR5E4JE=; b=6kTawHH0sebekGLLNSEkFmwmWLAr349AxSnzebaqw/e86bcnygiLRdOokmuf2towQXJR6H oLQhh22q42abAzjIuGvhLwJiTF/WzZO5VxAIogSFE2dzIp8F5mZ4yF4Fm1KmfWYwou4TOg oFCJfwNA9NKH/jJ51wF/mkp8emyxzTU= Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-739be717eddso4930986b3a.2 for ; Tue, 15 Apr 2025 21:31:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744777909; x=1745382709; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=URvhPy/oV2vL/75NuZBpcrmjoqkq3rW0UHgJpR5E4JE=; b=B/oscQ45s2ZbHHN5d7h9F3EPEqWfTcXwWdlv704Po2Yh95L/Hv0gYXk7fXRo1k1XBG m5TT1FjNIrkGeRjcMTHqK43S2EfNh2ioomfg22jURJpBdxWo/B7JhTNq7jqhfe7cDvyq 8COrA3HJNb0wcNscWpvbn3XhgHMnFu3eQY1v4I0graaNpdAY47VfeaVFmyQBifbd+u6u 1XGGeamvt26xshqME8IneASCkFQqDBeqHqEEFGigFMsX1N/Qg8ufeMvGpP9aJZ8Peaod jixo/pXIWoH12owrJVHgrQVG17X2/014K3kFZDoJFeezMII297HpJ2PASslSqIQyWtzc X8kQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744777909; x=1745382709; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=URvhPy/oV2vL/75NuZBpcrmjoqkq3rW0UHgJpR5E4JE=; b=k3pV1RfVUi4NO9MgPrx1MnSAwBIFlFpmkC8C9OHmvEYAP3zGfWE/bUbzxTmEWE/MzC EwtuFRKqrfyhfG03lvxbDzh9ngqzjrTe68GfzUmIvsBEtyBG4ktM2xBiyJE6vTmn4WyL gEpZuTxxMb9w4JdzPnUJd1XaR1vfoPjAwuzQmnkh7oOGjGar0pf+c/o0W2h+dMIvqWxm IQpZWK9OUc+2WWbPxf+92ceyEin0EVMAWZNQSr0MpmlWWwrf5lVrhdKt0GyTMMrtyKts bHd2TILjTZK63bn+uWZ0po3tpCc7+VLhdFpbiyphwgkBSYIRDqdvvLOjMXIvZXVh3cqu ixLA== X-Forwarded-Encrypted: i=1; AJvYcCVlQNbb8zdgYGWSC58kPwFQ4CIKUGG8qcd8LlmXlX4Ra/46oS/2oL0Xs/GrYCE/zzUx7a0tWSOKXw==@kvack.org X-Gm-Message-State: AOJu0YxwwbGtJUtPLvURlVCDyMoM82U7bLyan0RAlpXwKWixWT1dtXx+ m7mnr7STsA+a8dUpOC2OkNar5DlNJwEyFKo3KbIwFnKMMKgKlDCe X-Gm-Gg: ASbGncswfnEo9SoxhblrGULDm2pUDCA8RWQOEg8MJL9FdJ7Uv0jq3ErRU2fEBvDGhqW KMGM/KIfMgQx3BvIXl/kx18LTs/Q8KV0O+l5TLhMuiS2MBxUzZeLNXfttLDbv6hAyneIxglh/JA 5srCeR8kwXYltC38mdwbSrZsGt4vMnOkTSi4kKTyzpGLuOi6pMZvhzsujEB0+zZCFNguFIHB/eH EPV+TnlsKjTs6W0OTZfRpK836S9Jncn0Jb+BXQI1JUuE1ZXNJn+wnSHXQbO1UcvDFzW6LC6lX6/ rdD3NWV7MjvHh/pKBLmbgrlSbfJWXXNpbCiSoXGp1jlG7BhOqNYPWr4rgYtQQA== X-Google-Smtp-Source: AGHT+IHFgMxReC+YG32Dd+BwllhMqIBI2ZO2sqm0vk18CB7ElHOpAOiE8Lq9VRJv61eZzLm7um2j+Q== X-Received: by 2002:a05:6a21:789d:b0:1f3:345e:4054 with SMTP id adf61e73a8af0-203b3ea0252mr318052637.14.1744777909525; Tue, 15 Apr 2025 21:31:49 -0700 (PDT) Received: from VM-16-38-fedora.. ([43.135.149.86]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bd230d697sm9396676b3a.123.2025.04.15.21.31.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 21:31:49 -0700 (PDT) From: Jinliang Zheng X-Google-Original-From: Jinliang Zheng To: akpm@linux-foundation.org Cc: alexjlzheng@gmail.com, alexjlzheng@tencent.com, andrea@betterlinux.com, fengguang.wu@intel.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, mengensun@tencent.com, stable@vger.kernel.org, willy@infradead.org Subject: Re: [PATCH v2] mm: fix ratelimit_pages update error in dirty_ratio_handler() Date: Wed, 16 Apr 2025 12:31:47 +0800 Message-ID: <20250416043147.31208-1-alexjlzheng@tencent.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250415185851.e8d632f60ec5049f734ac2a8@linux-foundation.org> References: <20250415185851.e8d632f60ec5049f734ac2a8@linux-foundation.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: BD65E80004 X-Stat-Signature: xqhusjsty4p45t6a1pa47tc1z3gu5p6h X-Rspam-User: X-HE-Tag: 1744777910-959394 X-HE-Meta: U2FsdGVkX19RuCOip4288WfotuV7aJSibMmdgBZ7dhymMcnJnVuXiDQ2M2JXfbCMQiuhYLHv3snvJhmaTgU0tmr7RVKPdxGs4gWRTjBUOHb4UVfndsc1NluixJvziAibkYHmZHXhMi9jtTjWkVr7/osMsV9vaURMgDVrhfV1Boie/Y5AHnrDAWe/zC6uKml7IqisBr9+7WE3a49MiHwtdyUWGefS5zWVb6XdD3EfP322OSPLgZ2FxM4tA9EW//bGXb3L599sKVFtFByBX0nW3IwT9WvTNI7TUs+SxAPJbJ5UXW1U6mDHyKYtBxF2MFLwtCeYw8evGEJ9lcvRisKg8uZYUu5IbHzA2sN4ZngcU9Bt/us9HExvkSbl3Ydo7X1pzT6r68j+fUmIc4h9NoPMIAMcRmPibD5LdwS5bGWRFMVBsYrNiBQJDOgjCTqN4j+AR3gNa3elu5c8G+RdB1Ii/+gZ0MW8HIcN+iud4Y/Lg7GKSRylRebc/SD/yVCSXh6omOgb5M4j3NiYZx1X8cUltbhO0MtbP3agVLK6YAyK4r8SugmI33uswtalEnaK2i+7y7sfB/JQBmbd19i6APzNkifTTjqWjHLC+/oDQC1guhGeSoV4bG63dJocNde1tRVYbKfEvA/yVi31xW4EnYacD9WfUOwyrv4i5wzYghzUT/FsrblZaOZSk1HwA1k/QB4t6u2MRtfMVtdhVV0zWhThaavaPz/MkOaefKpYntH+fdklw1CHw2IotFUhkO/z5Bpjwspa5flOSUtlYxqgCJkbRCMAwZpn3vKkfU8FN0jbYDNqOeaQwR3eHmqECkTSrFjpC5NUIiFEYaf7iH/WKwkyVdO5CvTVP54WWIikox7ZK/EAEVmqnG4OZikXzXsI3koYn7qChaXZyHDbQK5m1dSnQeHH5pfoef4c6254Z4cojLw6n1WHhZByoQ1V9ZBIpKvGo9hATlszYdfiqdxd9YW zNrogIcI BgOZN5geTlwh78gXvq/gET6gWp3BisMu2ykO6t6i4MJV4rJOUWAPG8AWYrQM/yDvTZOWggziRkmvsnO1HPPk4AbRouDaeVGBmT7Z3W4alglGZOsMOrtSOTdU3dAwos/62aiW9DjsEKfipEEwdLfH0dJ/SI2u2c3C5A9N1xBt7hXeGV2/bfN27CGwRvRJZEKaan0Vnwe5NSuZ1W9t0C9nDZ1loG2dUZvufLt5miCoQteFb2r7UiMNMTQj7n0ag9db4rJHzyJ5HxW+u7M34QB71PP0gCO68r17mC3AfInqPcSMgRa367BFoB2vwpHfQBo1GjPPoSwjT1hQNe8EGEhQlpewT3nLOu7BxT2Jg1VdHhUvM0dDfxN4u+t0WT6G+MBPCt4zEdqQRKrgWSkDuSUR3QhmfPU8XUu58lEVuAMbXY6bblbWFHsgMcAt3GHhtVTUkP4Ha9mX50iIvle5IOrcHUPuZ0eBmsmJyyDk5mYk598YOGowQWBZBymegtqPbhLEA0WqS X-Bogosity: Ham, tests=bogofilter, spamicity=0.001360, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, 15 Apr 2025 18:58:51 -0700, akpm@linux-foundation.org wrote: > On Tue, 15 Apr 2025 17:02:32 +0800 alexjlzheng@gmail.com wrote: > > > 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. > > Can you please tell us precisely where global_dirty_limits() > prioritizes vm_dirty_bytes? I spent a while chasing code and didn't > see how global_dirty_limits() gets to node_dirty_ok()(?). Thank you for your reply. It's domain_dirty_limits() that's relevant here, not node_dirty_ok: dirty_ratio_handler writeback_set_ratelimit global_dirty_limits(&dirty_thresh) <- ratelimit_pages based on dirty_thresh domain_dirty_limits if (bytes) <- bytes = vm_dirty_bytes <--------+ thresh = f1(bytes) <- prioritizes vm_dirty_bytes | else | thresh = f2(ratio) | ratelimit_pages = f3(dirty_thresh) | vm_dirty_bytes = 0 <- it's late! ---------------------+ > > > 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 > > Please, as always, provide a description of the userspace-visible > effects of this bug? The impact visible to userspace is difficult to capture directly because there is no procfs/sysfs interface exported to user space. However, it will have a real impact on the balance of dirty pages. For example: 1. On default, we have vm_dirty_ratio=40, vm_dirty_bytes=0 2. echo 8192 > dirty_bytes, then vm_dirty_bytes=8192, vm_dirty_ratio=0, and ratelimit_pages is calculated based on vm_dirty_bytes now. 3. echo 20 > dirty_ratio, then since vm_dirty_bytes is not reset to zero when writeback_set_ratelimit() -> global_dirty_limits() -> domain_dirty_limits() is called, reallimit_pages is still calculated based on vm_dirty_bytes instead of vm_dirty_ratio. This does not conform to the actual intention of the user. thanks, Jinliang Zheng :)